首頁 >後端開發 >Python教學 >如何在 Python 中填充壓縮列表以匹配最長長度?

如何在 Python 中填充壓縮列表以匹配最長長度?

Barbara Streisand
Barbara Streisand原創
2024-11-28 07:30:13577瀏覽

How Can I Pad Zipped Lists in Python to Match the Longest Length?

將壓縮列表填入最長長度

在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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn