通过重复较短的列表来压缩不同大小的列表
当尝试压缩两个长度不等的列表时,内置的 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