首頁  >  文章  >  後端開發  >  如何在 Python 中壓縮大小不均勻的清單:探索「itertools.cycle」和自訂循環

如何在 Python 中壓縮大小不均勻的清單:探索「itertools.cycle」和自訂循環

Linda Hamilton
Linda Hamilton原創
2024-10-29 00:17:02820瀏覽

How to Zip Unevenly Sized Lists in Python: Exploring `itertools.cycle` and Custom Loops

壓縮大小不均勻的清單:探索替代方法

Python 內建zip 函數的固有行為在處理清單時提出了不同的清單長度。當一個列表比另一個列表短時,這一點很明顯,導致配對的元素數量不等。

為了解決這個限制,存在多種技術來實現所需的輸出,其中較短的列表被重複以匹配較長的長度。

1.將zip 函數與itertools.cycle

結合使用此方法涉及利用Python 的itertools.cycle 函數創建一個可迭代對象,該迭代對象無限循環較短列表的元素。透過利用循環,可以將較長列表的元素與較短列表的重複元素配對。

<code class="python">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)</code>

2.實作自訂For 循環

另一種方法涉及手動迭代較大的列表並將每個元素與較短列表中的相應元素配對。如果較短的列表用盡,則迭代從頭開始,重複元素,直到較大列表中的所有元素都配對。

<code class="python">idx = 0
zip_list = []
for value in larger:
    zip_list.append((value,smaller[idx]))
    idx += 1
    if idx == len(smaller):
        idx = 0</code>

透過採用這些策略中的任何一種,開發人員可以有效地壓縮兩個列表不同大小的列表,確保根據需要重複較短的列表以匹配較長列表的長度。這為涉及不等長度清單的各種資料處理和操作任務提供了可能性。

以上是如何在 Python 中壓縮大小不均勻的清單:探索「itertools.cycle」和自訂循環的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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