處理不同長度的清單時,將它們壓縮在一起可能會帶來挑戰。 Python 中預設的 zip() 函數將較短清單中的元素與較長清單中的元素配對,而較長清單中的其餘元素則不配對。為了解決這個限制,我們可以利用迭代重複的力量。
重複較短列表的一種有效方法是利用 itertools.cycle 函數。這個函數會建立一個迭代器,即使在耗盡之後,它也會無限地循環遍歷可迭代的元素。透過將循環合併到我們的壓縮操作中,我們可以確保較短的清單不斷重複,直到較長的清單完全覆蓋。
利用 itertools.cycle 壓縮不同大小的清單非常簡單。以下程式碼片段示範了其實作:
<code class="python">import itertools A = [1, 2, 3, 4, 5, 6, 7, 8, 9] B = ["A", "B", "C"] from itertools import cycle zip_list = zip(A, cycle(B)) if len(A) > len(B) else zip(cycle(A), B) for item in zip_list: print(item)</code>
執行提供的程式碼會產生以下輸出:
(1, 'A') (2, 'B') (3, 'C') (4, 'A') (5, 'B') (6, 'C') (7, 'A') (8, 'B') (9, 'C')
正如我們所觀察到的,較短的輸出清單B 會重複自身,直到較長列表A 中的所有元素都配對為止。這種無縫重複確保沒有元素不配對,從而使我們能夠在整個清單上執行操作而不會丟失任何資料。
以上是如何使用迭代重複在 Python 中壓縮不同大小的清單?的詳細內容。更多資訊請關注PHP中文網其他相關文章!