我正在建造一個生物模擬器。它將在兩個循環內運行,一個記錄一天,另一個記錄一天的時間。我有一本叫做清醒的我所有生物的字典,它是在每一天的開始。在一天中的某個時間點,一個生物會變得疲倦並且去睡覺。模擬將它們從清醒字典中刪除,以便它們不會被考慮用於剩餘時間循環。但問題在於,出於某種原因,清醒的字典會隨着每天的每一次循環而重置,以便訪問睡眠的生物。我已經在這裏發佈了相關的代碼,這是唯一一次清醒的使用。任何人都可以解釋我做錯了什麼?Python字典重置在循環外
for i in range(self.Day):
start = clock()
awake = self.creatures
for j in range(self.timeOfDay):
print("Life Time " + str(i + 1) + "/" + str(self.Day)
+ " Hour " + str(j + 1) + "/" + str(self.timeOfDay))
print(self)
traveling = []
for creature in awake:
goal = None
while goal == None:
priority = creature.priority()
if priority == "improveShelter":
goal = creature.findBest(land.Shelter, self.map)
elif priority == "sleep":
goal = creature.findBest(land.Shelter, self.map)
print(awake)
awake.pop(creature)
Woops。看起來我暫時忘了python使用引用。 – EasilyBaffled