lidaxia 发表于 2020-4-5 22:41:01

“列表中嵌套字典”的知识点求职!

本帖最后由 lidaxia 于 2020-4-5 22:43 编辑

#新建一个aliens列表
aliens=[]
#aliens中生成5个元素,这里的元素是字典
for alien_num in range(0,5):
    alien={
      'color':'green',
      'point':5,
      'speed':'slow'
      }
    aliens.append(alien)
#判断列表中的前三个字典,颜色键是否为绿色,是的话更改其字典的键值
for alien_change in aliens:
    if alien_change['color']=='green':
      alien_change['color']='yellow'
      alien_change['point']=10
      alien_change['speed']='medium'
#输出aliens列表
for alien in aliens[:5]:
    print(alien)
以下是编译结果:
{'color': 'yellow', 'point': 10, 'speed': 'medium'}
{'color': 'yellow', 'point': 10, 'speed': 'medium'}
{'color': 'yellow', 'point': 10, 'speed': 'medium'}
{'color': 'green', 'point': 5, 'speed': 'slow'}
{'color': 'green', 'point': 5, 'speed': 'slow'}

----求助:为什么通过if语句更改alien_change的值,会对aliens的值产生影响呢:万分感谢{:5_92:}

屈卓 发表于 2020-4-5 23:04:11

alien_change 只是接受aliens键的容器

lidaxia 发表于 2020-4-5 23:25:37

屈卓 发表于 2020-4-5 23:04
alien_change 只是接受aliens键的容器

你看下我上面发的,
当改变了alien_change的值之后,为什么aliens的值会根着变化呢?
我记得按照书本上的说法,alien_change是个变量,列表aliens的值赋值给了alien_change,那alien_change(变量)发生变化,怎么会对赋值给他的aliens产生变化呢?
帮忙解答一下

lidaxia 发表于 2020-4-5 23:28:34

lidaxia 发表于 2020-4-5 23:25
你看下我上面发的,
当改变了alien_change的值之后,为什么aliens的值会根着变化呢?
我记得按照书本上 ...

还是说alien_change,当做容器看待,容器变化了,会将值反赋值给aliens,

zltzlt 发表于 2020-4-6 08:11:28

# 新建一个aliens列表
aliens = []
# aliens中生成5个元素,这里的元素是字典
for alien_num in range(0, 5):
    alien = {
      'color': 'green',
      'point': 5,
      'speed': 'slow'
    }
    aliens.append(alien)
# 判断列表中的前三个字典,颜色键是否为绿色,是的话更改其字典的键值
for alien_change in aliens:
    alien_change = alien_change.copy()    # 拷贝
    if alien_change['color'] == 'green':
      alien_change['color'] = 'yellow'
      alien_change['point'] = 10
      alien_change['speed'] = 'medium'
# 输出aliens列表
for alien in aliens[:5]:
    print(alien)

会计的会怎么念 发表于 2020-4-6 12:04:05

我实在没看懂你的问题,我猜一下你不懂的地方:
- python中,列表,字典和元组都可以无限嵌套
- 你遍历列表中的元素,这些元素都是字典
- 每遍历一次,都将当前遍历出来的字典赋值给alien_change
- 你可以理解为alien_change是一个指针,指向从列表遍历出来当前的字典
- 所以你操作alien_change就是在操作列表中的字典

屈卓 发表于 2020-4-7 10:49:04

lidaxia 发表于 2020-4-5 23:28
还是说alien_change,当做容器看待,容器变化了,会将值反赋值给aliens,

是的,他只是遍历一下 alien_change 可以随便换其他的值都可以

屈卓 发表于 2020-4-7 10:50:04

屈卓 发表于 2020-4-7 10:49
是的,他只是遍历一下 alien_change 可以随便换其他的值都可以

我也是小白,可以加个好友吗 共同学习v 19800326887

lidaxia 发表于 2020-4-7 21:47:02

会计的会怎么念 发表于 2020-4-6 12:04
我实在没看懂你的问题,我猜一下你不懂的地方:
- python中,列表,字典和元组都可以无限嵌套
- 你遍历列 ...

好的,您的回答解决了我的疑问,十分感谢

lidaxia 发表于 2020-4-7 21:48:33

屈卓 发表于 2020-4-7 10:49
是的,他只是遍历一下 alien_change 可以随便换其他的值都可以

多谢您的解答

会计的会怎么念 发表于 2020-4-8 16:54:42

lidaxia 发表于 2020-4-7 21:47
好的,您的回答解决了我的疑问,十分感谢

好的!不客气!
页: [1]
查看完整版本: “列表中嵌套字典”的知识点求职!