如何在 Python 中使用'itertools.cycle”压缩不同大小的列表?
使用内置函数压缩不同大小的列表
虽然内置 zip 函数在合并两个时无法重复较短的列表对于不同大小的列表,您可以利用 itertools.cycle 函数来实现此结果。
Python 包 itertools 中的循环创建一个迭代器,即使在其耗尽之后,它也会重复从可迭代对象中返回元素。通过将 zip 与循环相结合,可以处理列表之间的大小差异,并确保根据需要重复较长的列表。
示例:
<code class="python">A = [1, 2, 3, 4, 5, 6, 7, 8, 9] B = ["A", "B", "C"] # Use itertools.cycle to repeat the shorter list from itertools import cycle zip_list = zip(A, cycle(B)) if len(A) > len(B) else zip(cycle(A), B)</code>
在此示例中:
- if len(A) > len(B) 检查第一个列表 (A) 是否比第二个列表 (B) 长。
- 如果是,则使用 zip 将 A 与 B 的循环迭代器合并,从而在整个合并结果中有效地重复 B .
- 如果 B 更长,则翻转顺序并循环 A。
结果:
zip_list 将包含以下元组作为生成器对象:
[(1, 'A'), (2, 'B'), (3, 'C'), (4, 'A'), (5, 'B'), (6, 'C'), (7, 'A'), (8, 'B'), (9, 'C')]
工作原理:
itertools.cycle 创建可迭代对象的副本(在本例中为 B)并重复返回其元素。当 zip 迭代 A 时,它将每个元素与循环迭代器中的下一个可用元素配对。
如果 A 比 B 短,则一旦迭代器耗尽,该过程就会从 B 的开头重新开始。相反,如果 A 更长,B 迭代器会不断循环以填充合并列表的剩余部分。
以上是如何在 Python 中使用'itertools.cycle”压缩不同大小的列表?的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

Linux终端中查看Python版本时遇到权限问题的解决方法当你在Linux终端中尝试查看Python的版本时,输入python...

使用FiddlerEverywhere进行中间人读取时如何避免被检测到当你使用FiddlerEverywhere...

在使用Python的pandas库时,如何在两个结构不同的DataFrame之间进行整列复制是一个常见的问题。假设我们有两个Dat...

如何在10小时内教计算机小白编程基础?如果你只有10个小时来教计算机小白一些编程知识,你会选择教些什么�...

Uvicorn是如何持续监听HTTP请求的?Uvicorn是一个基于ASGI的轻量级Web服务器,其核心功能之一便是监听HTTP请求并进�...

攻克Investing.com的反爬虫策略许多人尝试爬取Investing.com(https://cn.investing.com/news/latest-news)的新闻数据时,常常�...
