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

将列表值插入另一个列表(python),python,list,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.inser

我还是个编程新手。 我有两个清单:

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']]

我确信这可能是一个简单的错误,但我无法找出它是什么。

您可以使用
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)
输出:


请注意,这将创建一个新列表,而不会更改旧列表。如果使用列表易变性,则此代码将不起作用

您可以使用
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)
输出:


请注意,这将创建一个新列表,而不会更改旧列表。如果使用列表易变性,则此代码将不起作用

您要找的是:

其中:

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

您需要的是:

其中:

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

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

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

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

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

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

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

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

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

您可以使用迭代器:

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

您可以使用迭代器:

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


对于列表中的行:
,什么是
列表
?另外,您缺少一个结束语
。对不起,列表是List1,我将编辑它<代码>对于列表中的行:,什么是
列表
?另外,您缺少一个结束语
。对不起,列表是List1,我将编辑它!真是巧合:oI打字更快了!:-)我在评论之前查看了python解释器:)谢谢你们的回答!如果我想选择插入列表2的索引,那该怎么办?然后您将恢复到原始代码中的
insert
。真是巧合:oI键入得更快了!:-)我在评论之前查看了python解释器:)谢谢你们的回答!如果我想选择插入列表2的索引,那该怎么办?然后您将恢复到原始代码中的
insert
。这将创建第三个列表(
List3
),而不是按照OP的要求修改
List1
。如果OP将列表作为可变对象使用,则会产生不同,您是对的,更改了代码,因此,
List1
现在已经存在,而不是
List3
,但如果在功能上更改列表,可能仍然会导致问题。添加了回答信息,感谢也可能是性能方面的问题,因为在释放用于引用的“旧”列表之前,
List1
的所有项目都被复制到一个临时值(由列表理解表示),以便允许分配。这意味着值
1
2
。。。不必要地复制。这将创建第三个列表(
List3
),而不是按照OP的要求修改
List1
。如果OP将列表作为可变对象使用,则会产生不同,您是对的,更改了代码,因此
List1
,而不是
List3
,但若列表在功能上发生更改,则仍可能导致问题。添加了回答信息,感谢也可能是性能方面的问题,因为在释放用于引用的“旧”列表之前,
List1
的所有项目都被复制到一个临时值(由列表理解表示),以便允许分配。这意味着值
1
2
。。。都是不必要的复制品。