更改数据结构
问题描述:
我有2个相同大小的列表。我想创建一个新的列表,它们以列表的方式组合这两个列表,列表中的列表将具有相同索引的元素并且此列表具有相同的索引。更改数据结构
输入例如:
a = [1, 2, 3]
b = [4, 5, 6]
combined = [[1, 4], [2, 5], [3, 6]]
你知道该怎么做?
答
您可以压缩他们:
list(zip(a, b))
答
这给你的列表中。
combined = [[i,k] for i,k in zip(a,b)]
答
使用zip
>>> list(zip(a,b))
[(1, 4), (2, 5), (3, 6)]
或者你想列表,而不是元组:
>>> [[x,y] for x,y in zip(a,b)]
[[1, 4], [2, 5], [3, 6]]
答
这会给你的元组
combined = list(zip(a, b))
如果你真的需要你的列表的Elemen TS是列表,然后我们可以写
combined = list(map(list, zip(a, b)))
答
a = [1, 2, 3]
b = [4, 5, 6]
combined = list(zip(a,b))
for i in combined:
print(i)
使用zip命令这两个列表相结合。
对于Python3,这将返回类似于: –
Alexander
@Alexander您可以使用list()强制字符串表示形式。我忽略它在这里简化。大部分的Python 3列表构造都确实返回了生成器。 有些人可能认为'list'包装是强制性的,否则。 –
对于Python3,它产生一个''这是一个懒惰评估的迭代。只需编写'list(zip(a,b))'来强制评估。 –
Useless