鱼C论坛

 找回密码
 立即注册
查看: 421|回复: 4

字典

[复制链接]
发表于 2018-8-2 13:41:45 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
dict5.fromkeys((1, 2, 3), ('one', 'two', 'three'))
                 
Traceback (most recent call last):
  File "<pyshell#110>", line 1, in <module>
    dict5.fromkeys((1, 2, 3), ('one', 'two', 'three'))
NameError: name 'dict5' is not defined

请问用以上方法为字典添加元素为什么会报错啊?为什么要事先设置了一个字典才可以用这个方法呢?

另外就是用dict5.fromkeys((1, 3), '数字')这个语句,会显示以下结果:
{1: '数字', 3: '数字'}
但是当我再输入dict5的时候,输出的结果却是我最初随便设置的字典内容,这又是为什么啊?
我上传了一张截图,请大家为我解答一下,谢谢!
QQ截图20180802154055.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-8-2 14:18:02 | 显示全部楼层
fromkeys返回一个新的字典,不是改变字典,要改变的话要这样:
dict5 = dict5.fromkeys((1, 2, 3), ('one', 'two', 'three'))
上面报错是因为dict5未定义(或者说,未被赋值过,未被初始化过)
系统哪里知道dict5是个字典啊,所以要这样初始化才能用:
dict5 = {}
或者
dict5 = dict()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-8-2 14:33:52 | 显示全部楼层
无符号整形 发表于 2018-8-2 14:18
fromkeys返回一个新的字典,不是改变字典,要改变的话要这样:
dict5 = dict5.fromkeys((1, 2, 3), ('one' ...

那fromkeys不是会替代原来dict5里面的内容吗?因为字典的名字不都一样么?为什么不替代呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-2 14:34:38 | 显示全部楼层
半岛日志 发表于 2018-8-2 14:33
那fromkeys不是会替代原来dict5里面的内容吗?因为字典的名字不都一样么?为什么不替代呢?

不会的,它只会返回一个改过的字典。
你只要把这个字典给dict5就行。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-8-2 15:19:46 | 显示全部楼层
无符号整形 发表于 2018-8-2 14:34
不会的,它只会返回一个改过的字典。
你只要把这个字典给dict5就行。

那原来创立的字典dict5其实没有变,用fromkeys改的是个同名同姓的字典?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-6 01:40

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表