透過重複較短的清單來壓縮不同大小的清單
當嘗試壓縮兩個長度不等的清單時,內建的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中文網其他相關文章!