处理不同长度的列表时,将它们压缩在一起可能会带来挑战。 Python 中默认的 zip() 函数将较短列表中的元素与较长列表中的元素配对,而较长列表中的其余元素则不配对。为了解决这个限制,我们可以利用迭代重复的力量。
重复较短列表的一种有效方法是利用 itertools.cycle 函数。该函数创建一个迭代器,即使在耗尽之后,它也会无限地循环遍历可迭代的元素。通过将循环合并到我们的压缩操作中,我们可以确保较短的列表不断重复,直到较长的列表被完全覆盖。
利用 itertools.cycle 压缩不同大小的列表非常简单。以下代码片段演示了其实现:
<code class="python">import itertools 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) for item in zip_list: print(item)</code>
执行提供的代码会产生以下输出:
(1, 'A') (2, 'B') (3, 'C') (4, 'A') (5, 'B') (6, 'C') (7, 'A') (8, 'B') (9, 'C')
正如我们所观察到的,较短的输出列表 B 会重复自身,直到较长列表 A 中的所有元素都配对为止。这种无缝重复确保没有元素不配对,从而使我们能够在整个列表上执行操作而不会丢失任何数据。
以上是如何使用迭代重复在 Python 中压缩不同大小的列表?的详细内容。更多信息请关注PHP中文网其他相关文章!