添加到最空的列表? (蟒蛇)

时间:2017-05-04 00:35:29

标签: python

我正在寻找一种简单的方法来比较多个列表的内容,找到变量最少的列表。

然后我想将新变量设置为添加到该列表中。

示例:

list1 = [1,5,7,12,4,8]
list2 = [3,2,9,11,14,6,10]
list3 = [13,15,16]

在此我希望它找到最短的list3并将新值附加到它。

2 个答案:

答案 0 :(得分:3)

您可以编写一个小函数来检查每个列表的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]

答案 1 :(得分:3)

由于pythons minmaxsort的{​​{1}}关键字参数,这在python中非常简单

key

键对应于应用于每个元素的函数,其结果用于minmax中的比较。在这种情况下,使用函数min([list1, list2, list3..], key = len).append(item) (它检索序列对象的长度,如list和tuple以及定义len的任何类)。

来自__len__

  

key参数指定一个单参数排序函数,就像list.sort()

一样

来自list.sort()

  

key指定一个参数的函数,该函数用于从每个列表元素中提取比较键(例如,key = str.lower)。

例如

min