<分区>
我目前正在学习 Python 中的列表推导式。我将如何执行以下操作:
l1 = [2,4,6,8]
l2 = [2,3,4,5]
l = [*some list comprehension*]
这样
l = [[2,2],[4,3],[6,4],[8,5]]
编辑:我可以在没有 zip 的情况下执行此操作吗?
<分区>
我目前正在学习 Python 中的列表推导式。我将如何执行以下操作:
l1 = [2,4,6,8]
l2 = [2,3,4,5]
l = [*some list comprehension*]
这样
l = [[2,2],[4,3],[6,4],[8,5]]
编辑:我可以在没有 zip 的情况下执行此操作吗?
最佳答案
你想要 zip
功能。
例子-
>>> l1 = [2,4,6,8]
>>> l2 = [2,3,4,5]
>>>
>>> l = list(zip(l1,l2))
>>> l
[(2, 2), (4, 3), (6, 4), (8, 5)]
如果您希望内部列表的类型为 list
而不是 tuple -
>>> l = [list(x) for x in zip(l1,l2)]
>>> l
[[2, 2], [4, 3], [6, 4], [8, 5]]
在 python 3.x 中,zip
返回一个迭代器,因此如果您不需要列表,而只想迭代每个组合(压缩)元素,您可以直接使用 - zip(l1,l2)
.
如问题中所问,要在没有 zip
功能的情况下执行此操作,您可以使用 enumerate
函数从一个列表中获取索引和元素,然后使用索引从第二个列表中获取元素。
>>> l = [[x,l2[i]] for i,x in enumerate(l1)]
>>> l
[[2, 2], [4, 3], [6, 4], [8, 5]]
但是除非两个列表具有相同的大小,否则这将不起作用。也不确定为什么要在没有 zip 的情况下这样做。
关于python - 在没有 ZIP 的情况下在 python 中成对附加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31217116/