将列表值插入另一个列表(python)

时间:2019-12-06 18:54:16

标签: python list

我还是编程新手。 我有两个列表:

List1=[[1,2,3,4],[5,6,7,8],[9,10,11,12]]
List2=['a','b','c']

我想将一个列表的值放到另一个列表中,所以我的输出看起来像这样:

List1=[[1,2,3,4,'a'],[5,6,7,8,'b'],[9,10,11,12,'c']]

到目前为止,我设法写了这篇文章:

for i in range(0,len(List1)):
    for row in List1:
        row.insert(5, List2[i])

但是我明白了:

List1=[[1,2,3,4,'a','b','c'],[5,6,7,8,'a','b','c'],[9,10,11,12,'a','b','c']]

我敢肯定这可能是一个简单的错误,但是我找不到它是什么。

5 个答案:

答案 0 :(得分:2)

您可以使用zip

List1=[[1,2,3,4],[5,6,7,8],[9,10,11,12]]
List2=['a','b','c']

List1 = [ a + list(b) for a, b in zip(List1, List2)]
print(List1)

出局:

[[1, 2, 3, 4, 'a'], [5, 6, 7, 8, 'b'], [9, 10, 11, 12, 'c']]

请注意,这将创建一个新列表,并且不会更改旧列表。如果使用列表可变性,则此代码将无效!

答案 1 :(得分:2)

您发布的代码非常明确地将每个字母添加到每个列表中。相反,您只想添加相应的字母。这两个列表都需要一个循环索引,而不是嵌套循环。

for i in range(len(List1)):
    List1[i].append(List2[i])

答案 2 :(得分:1)

您可以使用append将第i个索引元素添加到List1的每个元素中

for i in range(len(List1)):
    List1[i].append(List2[i])

答案 3 :(得分:0)

您要寻找的是zip

for row, char in zip(List1, List2):
    row.append(char)

给出:

>>> List1
[[1, 2, 3, 4, 'a'], [5, 6, 7, 8, 'b'], [9, 10, 11, 12, 'c']]

答案 4 :(得分:0)

您可以使用迭代器:

it = iter(List2)
for lst in List1:
    lst.append(next(it))