加入两个长度不相同的列表,重复最短 - python

我有两个清单:

l1 = [1,2,3,4,5]
l2 = ["a","b","c"]

我的预期输出:

l3 = [(1,"a"),(2,"b"),(3,"c"),(4,"a"),(5,"b")]

因此,基本上,我希望加入两个列表,当它们的长度不同时,我必须通过从头开始重复来传播其他列表中的项目。

我试过了:

使用zip()但对于这种情况是不利的,因为它以相等的长度连接

>>> list(zip(l1,l2))
[(1, 'a'), (2, 'b'), (3, 'c')]

参考方案

您可以使用itertools.cycle,以便zip聚集l1和循环版本的l2中的元素:

from itertools import cycle

list(zip(l1, cycle(l2)))
# [(1, 'a'), (2, 'b'), (3, 'c'), (4, 'a'), (5, 'b')]

当将要循环的迭代器与其他迭代器组合或压缩时,cycle非常有用,因此一旦耗尽其他迭代器,迭代过程将停止。否则,它将无限期地循环(如果有一个cycle生成器,或者@chepner指出,所有其他可迭代变量也都是无限的)

Python:使用两个列表进行字典 - python

如何使用python使用两个列表作为字典list_one_keys = ['key1', 'key2', 'key3', 'key4'] 嵌套列表:list_two_values = [['a1var1', 'a1var2', '…

python JSON对象必须是str,bytes或bytearray,而不是'dict - python

在Python 3中,要加载以前保存的json,如下所示:json.dumps(dictionary)输出是这样的{"('Hello',)": 6, "('Hi',)": 5}当我使用json.loads({"('Hello',)": 6,…

您如何在列表内部调用一个字符串位置? - python

我一直在做迷宫游戏。我首先决定制作一个迷你教程。游戏开发才刚刚开始,现在我正在尝试使其向上发展。我正在尝试更改PlayerAre变量,但是它不起作用。我试过放在列表内和列表外。maze = ["o","*","*","*","*","*",…

Python uuid4,如何限制唯一字符的长度 - python

在Python中,我正在使用uuid4()方法创建唯一的字符集。但是我找不到将其限制为10或8个字符的方法。有什么办法吗?uuid4()ffc69c1b-9d87-4c19-8dac-c09ca857e3fc谢谢。 参考方案 尝试:x = uuid4() str(x)[:8] 输出:"ffc69c1b" Is there a way to…

Python:无法识别Pip命令 - python

这是我拍摄的屏幕截图。当我尝试在命令提示符下使用pip时,出现以下错误消息:pip无法识别为内部或外部命令,可操作程序或批处理文件。我已经检查了这个线程:How do I install pip on Windows?我所能找到的就是我必须将"C:\PythonX\Scripts"添加到我的类路径中,其中X代表python版本。如您在我的…