首页  >  文章  >  后端开发  >  如何通过重复较短的列表来压缩不等长的列表?

如何通过重复较短的列表来压缩不等长的列表?

DDD
DDD原创
2024-10-27 19:18:01272浏览

How Can I Zip Unequal Length Lists by Repeating the Shorter One?

通过重复较短的列表来压缩不同大小的列表

当尝试压缩两个长度不等的列表时,内置的 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn