0
有沒有辦法將izip_longest()
應用於列表中的列表?izip_longest列表中的列表
如果我有
somelist = [[1, 2, 3], "abcd", (4, 5, 6)]
是有辦法做到
izip_longest(somelist[0], somelist[1], ....)
有沒有辦法將izip_longest()
應用於列表中的列表?izip_longest列表中的列表
如果我有
somelist = [[1, 2, 3], "abcd", (4, 5, 6)]
是有辦法做到
izip_longest(somelist[0], somelist[1], ....)
可以解開列表,與*
,這樣
my_list = [[1, 2, 3], "abcd", (4, 5, 6)]
izip_longest(*my_list)
例如,
from itertools import izip_longest
my_list = [[1, 2, 3], "abcd", (4, 5, 6)]
print list(izip_longest(*my_list))
輸出
[(1, 'a', 4), (2, 'b', 5), (3, 'c', 6), (None, 'd', None)]
注:使用list
作爲變量名稱將陰影內建list
功能
如果您選擇使用自定義替代值,而不是None
,你可以做這樣的
print list(izip_longest(*my_list, fillvalue = -1))
輸出
[(1, 'a', 4), (2, 'b', 5), (3, 'c', 6), (-1, 'd', -1)]
使用*args
調用語法:
some_list = [[1, 2, 3], "abcd", (4, 5, 6)]
izip_longest(*somelist)
這句法適用的somelist
所有元素作爲單獨的參數到被調用的對象。
這適用於所有電話,而不僅僅是izip_longest()
。
演示:
>>> from itertools import izip_longest
>>> some_list = [[1, 2, 3], "abcd", (4, 5, 6)]
>>> list(izip_longest(*some_list))
[(1, 'a', 4), (2, 'b', 5), (3, 'c', 6), (None, 'd', None)]
使用參數解包:'izip_longest(* list)' –
不要使用'list'作爲變量名,它會掩蓋內置類型。 –