將壓縮列表填入最長長度
在Python 程式設計領域中,zip() 函數將多個可迭代物件無縫合並為一個列表元組。然而,結果清單的長度通常受到最短輸入的限制。為了克服這一限制並將清單填充到最長輸入的長度,人們可能會尋求替代解決方案。
itertools.zip_longest:完美契合
Python 3 揭幕itertools.zip_longest 的強大功能,是專門為此目的而設計的函數。它用 None 值無縫填充較短的輸入,有效地將列表擴展到最長可迭代的長度。
這是一個說明性範例:
a = ['a1'] b = ['b1', 'b2', 'b3'] c = ['c1', 'c2'] result = list(itertools.zip_longest(a, b, c)) print(result)
輸出:
[('a1', 'b1', 'c1'), (None, 'b2', 'c2'), (None, 'b3', None)]
自訂填充值
自訂填充值result = list(itertools.zip_longest(a, b, c, fillvalue='foo')) print(result)zip_longp函數提供了使用fillvalue 參數指定自訂填充值的彈性。這樣可以更好地控制填充機制。
[('a1', 'b1', 'c1'), ('foo', 'b2', 'c2'), ('foo', 'b3', 'foo')]
輸出:
Python 2.x:替代方法result = list(map(None, a, b, c)) print(result)For Python 2.x 使用者尋求等效的解決方案方案,他們可以利用itertools.izip_longest (在Python 中提供) 2.6 ) 或使用帶有None 的 map 作為替代。
[('a1', 'b1', 'c1'), (None, 'b2', 'c2'), (None, 'b3', None)]輸出:
以上是如何在 Python 中填充壓縮列表以匹配最長長度?的詳細內容。更多資訊請關注PHP中文網其他相關文章!