1 回答
TA贡献1852条经验 获得超1个赞
您只有一本词典,并且在列表中引用了 30 次。你更新的任何内容都会更新这个字典,所以所有的外星人都将是一样的。
您应该附加此字典的副本(properties1.copy()而不是第一个循环中的properties1:
properties1={'color':'silver','weight':45,'Height':5.5,'planet':'mars'}
aliens = []
for alien in range(30):
aliens.append(properties1.copy())
for alien in aliens[0:3]:
if alien['color'] == 'silver':
alien['weight']=10
alien['Height']=2
print(alien)
for alien in aliens[:6]:
print(alien)
输出:
{'color': 'silver', 'weight': 10, 'Height': 2, 'planet': 'mars'}
{'color': 'silver', 'weight': 10, 'Height': 2, 'planet': 'mars'}
{'color': 'silver', 'weight': 10, 'Height': 2, 'planet': 'mars'}
{'color': 'silver', 'weight': 10, 'Height': 2, 'planet': 'mars'}
{'color': 'silver', 'weight': 10, 'Height': 2, 'planet': 'mars'}
{'color': 'silver', 'weight': 10, 'Height': 2, 'planet': 'mars'}
{'color': 'silver', 'weight': 45, 'Height': 5.5, 'planet': 'mars'}
{'color': 'silver', 'weight': 45, 'Height': 5.5, 'planet': 'mars'}
{'color': 'silver', 'weight': 45, 'Height': 5.5, 'planet': 'mars'}
添加回答
举报