使用內建函數壓縮不同大小的列表
而內建zip 函數在合併兩個列表時無法重複較短的列表對於不同大小的列表,您可以利用itertools.cycle 函數來實現此結果。 Python 套件 itertools 中的
cycle 建立了一個即使在耗盡之後,迭代器仍會重複從可迭代物件中傳回元素。透過將 zip 與迴圈結合起來,可以處理清單之間的大小差異,並確保根據需要重複較長的清單。
範例:
A = [1, 2, 3, 4, 5, 6, 7, 8, 9]
B = ["A", "B", "C"]
# Use itertools.cycle to repeat the shorter list
from itertools import cycle
zip_list = zip(A, cycle(B)) if len(A) > len(B) else zip(cycle(A), B)
在此範例中:
結果:
結果:[(1, 'A'), (2, 'B'), (3, 'C'), (4, 'A'), (5, 'B'), (6, 'C'), (7, 'A'), (8, 'B'), (9, 'C')]
zip_list 將包含以下元組作為生成器物件:[(1, 'A'), ( 2, 'B'), (3, 'C'), (4, 'A'), (5, 'B'), (6, 'C'), (7, 'A'), (8, 'B') '), (9, 'C')]
工作原理:itertools.cycle 創建可迭代物件的副本(在本例中為B)並重複傳回其元素。當 zip 迭代 A 時,它將每個元素與循環迭代器中的下一個可用元素配對。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3