為何字典的for循環(huán) for后面的組合值改變會(huì)影響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循環(huán)則不會(huì)被影響是為什么呢?
2018-12-25
第一個(gè)for循環(huán)里將aliens定義為一個(gè)list,
在第二個(gè)for循環(huán)里,你定義了alien遍歷list(aliens)前3個(gè)元素,會(huì)得到:
{'color':'blue','point':5,'speed':'slow'}
{'color':'blue','point':5,'speed':'slow'}
{'color':'blue','point':5,'speed':'slow'}
每個(gè)元素都是dict
然后你定義了這三個(gè)元素中,當(dāng)key值color為blue時(shí)(alien['color'] == 'blue'),dict里的各key值的變量會(huì)改變
因此會(huì)得到
{'color':'yellow','point':10,'speed':'medium'}
{'color':'yellow','point':10,'speed':'medium'}
{'color':'yellow','point':10,'speed':'medium'}
先執(zhí)行第一個(gè)for循環(huán),再執(zhí)行第二個(gè)for循環(huán),兩者并不影響
2022-03-27
頭大了可能是聽(tīng)的時(shí)間長(zhǎng)了,可以出去走走,然后回來(lái)接著聽(tīng)哈哈,暫時(shí)這門(mén)課程還有沒(méi)視頻課程規(guī)劃。但后期可能會(huì)有。