透過重複較短的清單來壓縮不同大小的清單
當嘗試壓縮兩個長度不等的清單時,內建的zip 函數會失效透過不重複較短的列表來匹配較大的列表來縮短。為了克服這個問題,需要替代方法。
使用 itertools.cycle 的解決方案
itertools.cycle 函數提供了無限迭代可迭代物件的能力。可以利用此功能無限地重複較短的列表,同時使用較長的列表對其進行壓縮。
實作:
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)
在此解決方案中,我們使用條件語句以確定應重複哪個清單。如果 A 比 B 長,我們使用 itertools.cycle 重複 B,如果 B 比 A 長,我們重複 A。
產生的 zip_list 將包含來自 A 和 B 的元組配對元素,其中 B 為根據需要重複以符合 A 的長度。此方法可確保兩個清單中的所有元素都配對在一起,較短的清單會根據需要重複。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3