我正在尋找一種簡單的方法來比較多個列表的內容並找到變量最少的那個。添加東西到最空的列表? (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]
感謝你和方向之間的答覆傢伙就指着我我得到了我所需要的一切以及更多。 –