我想創建一個包含 30 個外星人的串列。它們具有不同的特征,而一本詞典就包含了這些特征。
aliens = []
for num in range(30):
alien_new = {"color": "green", "points": "5", "speed": "low"}
aliens.append(alien_new)
for alien in aliens[:10]:
if alien["color"] == "green":
alien = {"color": "yellow", "points": "10", "speed": "medium"}
for alien in aliens[:5]:
if alien["color"] == "yellow":
alien = {"color": "red", "points": "15", "speed": "fast"}
aliens = []
for num in range(30):
alien_new = {"color": "green", "points": "5", "speed": "low"}
aliens.append(alien_new)
for alien in aliens[:10]:
if alien["color"] == "green":
alien["color"] = "yellow"
alien["points"] = "10"
alien["speed"] = "medium"
for alien in aliens[:5]:
if alien["color"] == "yellow":
alien["color"] = "red"
alien["points"] = "15"
alien["speed"] = "fast"
我不知道為什么有兩個不同的答案。
uj5u.com熱心網友回復:
aliens 是一個包含 30 個字典的串列。
在 for 回圈 ( for alien in aliens[:10]:) 中,alien 是一個“指向”這些字典之一的變數。
執行時alien["color"] = "yellow",您會更改此詞典的欄位之一。
而當您執行時alien = {"color": "yellow", "points": "10", "speed": "medium"},您將alien變數指向一個包含黃色的新字典,但您不會更改aliens陣列或其內容。
您只更改本地回圈變數的值。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/347776.html
下一篇:c#將字典值組合成新的鍵值對
