将列表值插入另一个列表(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
。。。都是不必要的复制品。