压缩大小不均匀的列表:探索替代方法
Python 内置 zip 函数的固有行为在处理列表时提出了挑战不同的长度。当一个列表比另一个列表短时,这一点很明显,导致配对的元素数量不等。
为了解决这一限制,存在多种技术来实现所需的输出,其中较短的列表被重复以匹配较长的长度。
1.将 zip 函数与 itertools.cycle
结合使用此方法涉及利用 Python 的 itertools.cycle 函数创建一个可迭代对象,该迭代对象无限循环较短列表的元素。通过利用循环,可以将较长列表的元素与较短列表的重复元素配对。
<code class="python">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)</code>
2.实现自定义 For 循环
另一种方法涉及手动迭代较大的列表并将每个元素与较短列表中的相应元素配对。如果较短的列表用尽,则迭代从头开始,重复元素,直到较大列表中的所有元素都配对。
<code class="python">idx = 0 zip_list = [] for value in larger: zip_list.append((value,smaller[idx])) idx += 1 if idx == len(smaller): idx = 0</code>
通过采用这些策略中的任何一种,开发人员可以有效地压缩两个列表不同大小的列表,确保根据需要重复较短的列表以匹配较长列表的长度。这为涉及不等长度列表的各种数据处理和操作任务提供了可能性。
以上是如何在 Python 中压缩大小不均匀的列表:探索'itertools.cycle”和自定义循环的详细内容。更多信息请关注PHP中文网其他相关文章!