首頁  >  文章  >  後端開發  >  如何透過重複較短的清單來壓縮不等長的清單?

如何透過重複較短的清單來壓縮不等長的清單?

DDD
DDD原創
2024-10-27 19:18:01268瀏覽

How Can I Zip Unequal Length Lists by Repeating the Shorter One?

透過重複較短的清單來壓縮不同大小的清單

當嘗試壓縮兩個長度不等的清單時,內建的zip 函數會失敗透過不重複較短的列表來匹配較大的列表來縮短。為了克服這個問題,需要替代方法。

使用 itertools.cycle 的解

itertools.cycle 函數提供了無限迭代可迭代的能力。可以利用此功能無限地重複較短的列表,同時將其與較長的列表壓縮。

實作:

<code class="python">import itertools

A = [1, 2, 3, 4, 5, 6, 7, 8, 9]
B = ["A", "B", "C"]

zip_list = zip(A, itertools.cycle(B)) if len(A) > len(B) else zip(itertools.cycle(A), B)</code>

在此解中,我們使用條件語句來決定應重複哪個清單。如果 A 比 B 長,我們使用 itertools.cycle 重複 B,如果 B 比 A 長,我們重複 A。

產生的 zip_list 將包含來自 A 和 B 的元組配對元素,其中 B 為根據需要重複以符合 A 的長度。這種方法可確保兩個清單中的所有元素都配對在一起,較短的清單根據需要重複。

以上是如何透過重複較短的清單來壓縮不等長的清單?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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