為何字典的for循環 for后面的組合值改變會影響in后面的值
aliens = []
for alien in range(30):
? ? new_alien = {'color':'blue','point':5,'speed':'slow'}
? ? aliens.append(new_alien)
print('\n')
for alien in aliens[0:3]:
? ? if alien['color'] == 'blue':
? ? ? ? alien['color'] = 'yellow'
? ? ? ? alien['point'] = 10
? ? ? ? alien['speed'] = 'medium'
? ? ? ? print(alien)
如題中,alien被改變 alens也被影響了。然而list與元組的for循環則不會被影響是為什么呢?
2018-12-25
第一個for循環里將aliens定義為一個list,
在第二個for循環里,你定義了alien遍歷list(aliens)前3個元素,會得到:
{'color':'blue','point':5,'speed':'slow'}
{'color':'blue','point':5,'speed':'slow'}
{'color':'blue','point':5,'speed':'slow'}
每個元素都是dict
然后你定義了這三個元素中,當key值color為blue時(alien['color'] == 'blue'),dict里的各key值的變量會改變
因此會得到
{'color':'yellow','point':10,'speed':'medium'}
{'color':'yellow','point':10,'speed':'medium'}
{'color':'yellow','point':10,'speed':'medium'}
先執行第一個for循環,再執行第二個for循環,兩者并不影響
2022-03-27
頭大了可能是聽的時間長了,可以出去走走,然后回來接著聽哈哈,暫時這門課程還有沒視頻課程規劃。但后期可能會有。