“列表中嵌套字典”的知识点求职!
本帖最后由 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:} alien_change 只是接受aliens键的容器 屈卓 发表于 2020-4-5 23:04
alien_change 只是接受aliens键的容器
你看下我上面发的,
当改变了alien_change的值之后,为什么aliens的值会根着变化呢?
我记得按照书本上的说法,alien_change是个变量,列表aliens的值赋值给了alien_change,那alien_change(变量)发生变化,怎么会对赋值给他的aliens产生变化呢?
帮忙解答一下 lidaxia 发表于 2020-4-5 23:25
你看下我上面发的,
当改变了alien_change的值之后,为什么aliens的值会根着变化呢?
我记得按照书本上 ...
还是说alien_change,当做容器看待,容器变化了,会将值反赋值给aliens, # 新建一个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) 我实在没看懂你的问题,我猜一下你不懂的地方:
- python中,列表,字典和元组都可以无限嵌套
- 你遍历列表中的元素,这些元素都是字典
- 每遍历一次,都将当前遍历出来的字典赋值给alien_change
- 你可以理解为alien_change是一个指针,指向从列表遍历出来当前的字典
- 所以你操作alien_change就是在操作列表中的字典 lidaxia 发表于 2020-4-5 23:28
还是说alien_change,当做容器看待,容器变化了,会将值反赋值给aliens,
是的,他只是遍历一下 alien_change 可以随便换其他的值都可以 屈卓 发表于 2020-4-7 10:49
是的,他只是遍历一下 alien_change 可以随便换其他的值都可以
我也是小白,可以加个好友吗 共同学习v 19800326887 会计的会怎么念 发表于 2020-4-6 12:04
我实在没看懂你的问题,我猜一下你不懂的地方:
- python中,列表,字典和元组都可以无限嵌套
- 你遍历列 ...
好的,您的回答解决了我的疑问,十分感谢 屈卓 发表于 2020-4-7 10:49
是的,他只是遍历一下 alien_change 可以随便换其他的值都可以
多谢您的解答 lidaxia 发表于 2020-4-7 21:47
好的,您的回答解决了我的疑问,十分感谢
好的!不客气!
页:
[1]