我想压缩两个不同长度的列表

例如

A = [1,2,3,4,5,6,7,8,9]
B = ["A","B","C"]

我期待着

[(1, 'A'), (2, 'B'), (3, 'C'), (4, 'A'), (5, 'B'), (6, 'C'), (7, 'A'), (8, 'B'), (9, 'C')]

但内置zip将不会重复与更大的列表配对.

这是我的密码

idx = 0
zip_list = []
for value in larger:
    zip_list.append((value,smaller[idx]))
    idx += 1
    if idx == len(smaller):
        idx = 0

推荐答案

你可以使用itertools.cycle:

制作一个迭代器,返回iterable中的元素,并保存每个元素的副本.iterable用完后,从保存的副本返回元素.无限期地重复.

Example:

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)

Python-3.x相关问答推荐

如何在Python Matplotlib中在x轴上放置点

在Python中从mySQL获取多行

如何验证具有内部json字符串的json字符串?

如何在 python 中将带有时区信息的时间戳转换为 utc 时间

通过在不重新索引的情况下采用最高概率的百分比,有效地转换 0/1 列表中的概率列表

Python,Web 从交互式图表中抓取数据

它们是否同样存储在python3的内存中?

无法使用 curve_fit() 在 python 中复制高斯函数的曲线拟合

txt 文件与不同的分隔符到整数列表

如何将虚拟变量列转换为多列?

Pandas数据单调行为

例外:使用 Pyinstaller 时找不到 PyQt5 插件目录,尽管 PyQt5 甚至没有被使用

多个返回函数的列表理解?

基本 Flask 应用程序未运行(TypeError:模块中缺少必填字段type_ignores)

在 sklearn.decomposition.PCA 中,为什么 components_ 是负数?

为什么我在 Python 中收到错误消息无法导入名称 NoneType?

Python 3 与 Python 2 映射行为

AttributeError:LinearRegression 对象没有属性coef_

使用 python2 和 python3 创建一个 virtualenv

在 Meta 中创建具有动态模型的通用序列化程序