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'}
添加回答
舉報