我正在寻找一种简单的方法来比较多个列表的内容并找到变量最少的那个。添加东西到最空的列表? (python)
然后我想设置新变量添加到该列表。
例子:
list1 = [1,5,7,12,4,8]
list2 = [3,2,9,11,14,6,10]
list3 = [13,15,16]
在此我希望它找到项目list3是最短和新值追加到它。
我正在寻找一种简单的方法来比较多个列表的内容并找到变量最少的那个。添加东西到最空的列表? (python)
然后我想设置新变量添加到该列表。
例子:
list1 = [1,5,7,12,4,8]
list2 = [3,2,9,11,14,6,10]
list3 = [13,15,16]
在此我希望它找到项目list3是最短和新值追加到它。
由于蟒min
,max
,并sort
的key
关键字参数,这是相当简单的在python
min([list1, list2, list3..], key = len).append(item)
键对应做到功能应用于每个元素,其结果用于比较min
和max
。在这种情况下,使用函数len
(其检索序列对象的长度,如列表和元组以及定义__len__
的任何类)。
从min
。
关键参数指定一个一个参数的排序函数那样的用于list.sort()
key指定用于一个参数的函数的从每个列表元素中提取一个比较键(例如,key = str.lower)。
例如
>>> x = [11231]
>>> y = [1,2,3,4,5]
>>> z = [1,2,3,4,1,1]
>>> min([x,y,z], key = len)
[11231]
您可以编写一个小函数,检查每个列表的len
,然后append
到该列表。
def add_to_shortest(lists, item):
min(lists, key = lambda i: len(i)).append(item)
例如
>>> add_to_shortest([list1, list2, list3], 5)
>>> list3
[13, 15, 16, 5]
感谢你和方向之间的答复家伙就指着我我得到了我所需要的一切以及更多。 –