为了账号安全,请及时绑定邮箱和手机立即绑定

为何字典的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循环则不会被影响是为什么呢?

正在回答

2 回答

第一个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循环,两者并不影响

2 回复 有任何疑惑可以回复我~

头大了可能是听的时间长了,可以出去走走,然后回来接着听

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
初识Python
  • 参与学习       758625    人
  • 解答问题       8667    个

学python入门视频教程,让你快速入门并能编写简单的Python程序

进入课程

为何字典的for循环 for后面的组合值改变会影响in后面的值

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信