Skip to main content
 首页 » 编程设计

python之您可以在另一个列表的元素中复制一个列表吗

2025年05月04日15lori

我想知道是否可以在另一个元素的元素上复制整个列表。

a = [1, 2, 3] 
b = [] 
b[0] = list(a) 
print(b) 

它给出了错误:list assignment index out of range

但是如果我们不复制它而只把它放在那里:

a = [1, 2, 3] 
b = [a] 
print(b) 

它工作并打印:[[1, 2, 3]]

这能做到吗?

请您参考如下方法:

It gives the error: "list assignment index out of range"

因为你创造了b 作为空列表 b=[]然后您尝试访问第一个元素 [0]列表b与 b[0]在执行 b[0] = list(a) 时,并且该索引对于空列表不存在。

要向列表添加值,通常总是使用 list.append() 方法:

a = [1, 2, 3] 
b = [] 
 
b.append(a)  # similar to b = [a] but more intuitive. 
print(b)     # prints b = [[1, 2, 3]]  

简单明了。


注意事项:

b.append(a)和 b.append(list(a))是两个看起来不同的东西。

b.append(a) (类似于 b = [a] )复制 a 的引用在b同时b.append(list(a)) 根据 a 的值创建一个新列表并将其添加到列表 b .由于列表是可变的,因此在操作内部列表时会产生令人困惑的含义。

这通过一个例子变得更加清楚,其中 a = [1, 2, 3]和 b=[]在每个示例中:

与 b.append(a) :

b.append(a) 
print(b)     # prints b = [[1, 2, 3]] 
 
# Now if we modify a: 
a.append(4)  # a = [1, 2, 3, 4] 
 
# Changes are visible in b: 
print(b)     # b = [[1, 2, 3, 4]] 

与 b.append(list(a)) :

b.append(list(a)) 
print(b)     # prints b = [[1, 2, 3]] 
 
# Now if we modify a: 
a.append(4)  # a = [1, 2, 3, 4] 
 
# Changes are NOT visible in b: 
print(b)     # b = [[1, 2, 3]]