Skip to main content
 首页 » 编程设计

python之意外列表追加

2025年05月04日12luoye11

import random 
stats = [] 
statslist = [] 
rollslist = [] 
for var1 in range(4): 
    stats.append(random.randrange(1, 7)) 
rollslist.append(stats) 
print(stats) 
b = min(stats) 
stats.remove(b) 
print(sum(stats)) 
statslist.append(sum(stats)) 
print(stats) 
print(rollslist) 
print(statslist) 

实际结果

[5, 1, 1, 3] 
9 
[5, 1, 3] 
[[5, 1, 3]] 
[9] 

预期结果

[5, 1, 1, 3] 
9 
[5, 1, 3] 
[[5, 1, 1, 3]] 
[9] 

我希望它为第四个结果打印四个数字,而不是它给我的三个。我在删除号码之前 append 了列表。我错过了什么?

请您参考如下方法:

您添加了一个可变列表。当您稍后修改它时,修改会影响您放置在列表中的对象,因为它是直接引用而不是副本。

制作列表副本的最简单方法是使用切片:

rollslist.append(stats[:])