让我们说有一个列表,
list1= [[0, 4, 0, 0], [2, 0, 4, 0], [9, 8, 0, 0], [0, 2, 5, 0]]
还有另一个列表
list2= [a,b,c,d]
我已经看到多个问题类似的问题,但我无法得到这个问题的正确答案。
我想列一个清单
list3= [[a,0,4,0,0],[b,2,0,4,0],[c,9,8,0,0],[d,0,2,5,0]]
有没有简单的方法来实现这个目标?
答案 0 :(得分:2)
您可以迭代列表并使用 list.insert 方法执行您想要的操作
list1= [[0, 4, 0, 0], [2, 0, 4, 0], [9, 8, 0, 0], [0, 2, 5, 0]]
list2= ["a","b","c","d"]
for i,v in enumerate(list2):
list1[i].insert(0, v)
print list1
OR
result = []
for i,v in zip(list1, list2):
result.append([v] + i)
print result
<强>输出强>:
[['a', 0, 4, 0, 0], ['b', 2, 0, 4, 0], ['c', 9, 8, 0, 0], ['d', 0, 2, 5, 0]]
答案 1 :(得分:2)
将list comprehension与zip()一起使用即可:
result = [[i]+j for i, j in zip(list2, list1)]
<强>输出:强>
>>> list1 = [[0, 4, 0, 0], [2, 0, 4, 0], [9, 8, 0, 0], [0, 2, 5, 0]]
>>> list2 = ['a', 'b', 'c', 'd']
>>> result = [[i]+j for i, j in zip(list2, list1)]
>>> result
[['a', 0, 4, 0, 0], ['b', 2, 0, 4, 0], ['c', 9, 8, 0, 0], ['d', 0, 2, 5, 0]]
答案 2 :(得分:1)
使用迭代器+列表理解怎么样:
null
答案 3 :(得分:0)
使用简单的list-comprehensions -
In [1]: list1= [[0, 4, 0, 0], [2, 0, 4, 0], [9, 8, 0, 0], [0, 2, 5, 0]]
In [2]: list2= ["a","b","c","d"]
In [3]: [[list2[i]] + l1 for i, l1 in enumerate(list1)] # Enumerate keeps track of the index, and also returns the current list element
Out[3]: [['a', 0, 4, 0, 0], ['b', 2, 0, 4, 0], ['c', 9, 8, 0, 0], ['d', 0, 2, 5, 0]]