通过重复较短的列表来压缩不同大小的列表
当尝试压缩两个长度不等的列表时,内置的 zip 函数会失败通过不重复较短的列表来匹配较大的列表来缩短。为了克服这个问题,需要替代方法。
使用 itertools.cycle 的解决方案
itertools.cycle 函数提供了无限迭代可迭代的能力。可以利用此功能无限地重复较短的列表,同时将其与较长的列表压缩。
实现:
<code class="python">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)</code>
在此解决方案中,我们使用条件语句来确定应重复哪个列表。如果 A 比 B 长,我们使用 itertools.cycle 重复 B,如果 B 比 A 长,我们重复 A。
生成的 zip_list 将包含来自 A 和 B 的元组配对元素,其中 B 为根据需要重复以匹配 A 的长度。这种方法可确保两个列表中的所有元素都配对在一起,较短的列表根据需要重复。
以上是如何通过重复较短的列表来压缩不等长的列表?的详细内容。更多信息请关注PHP中文网其他相关文章!