xizi123 发表于 2020-7-18 21:57:04

请问一下关于字典的问题?

>>> dict1.fromkeys((1, 2, 3), ('one', 'two', 'three'))
>>> dict1.fromkeys((1, 3), '数字')
问题是执行完上边代码后会出现 :
{1: '数字', 3: '数字'}            它代表什么含义呢?是字典dict1有这些键值吗?
可是为什么在执行dict1或print(dict1)是却显示{},
这是为什么呢???

永恒的蓝色梦想 发表于 2020-7-18 21:59:28

问题是执行完上边代码后会出现 :
{1: '数字', 3: '数字'}            它代表什么含义呢?是字典dict1有这些键值吗?是 dict.fromkeys 的返回值。可是为什么在执行dict1或print(dict1)是却显示{},dict.fromkeys 是一个类方法,他只会创建一个新字典,不会修改原字典。

1q23w31 发表于 2020-7-18 22:00:13

fromkeys()方法返回一个新的字典,原字典不会变
a=dict1.fromkeys((1, 3), '数字')
print(a)
print(dict1)

Twilight6 发表于 2020-7-18 22:00:15

本帖最后由 Twilight6 于 2020-7-18 22:02 编辑



fromkeys 函数是创建新的字典,你需要赋值给一个变量才行,比如你这里的代码:
dict1 = {}
a = dict1.fromkeys((1, 2, 3), ('one', 'two', 'three'))
b = dict1.fromkeys((1, 3), '数字')
print(a)
print(b)
输出结果:
{1: ('one', 'two', 'three'), 2: ('one', 'two', 'three'), 3: ('one', 'two', 'three')}
{1: '数字', 3: '数字'}

而 fromkeys 的第一个参数是对应的 key键

而第二个参数的所以键对应的 value值 ,所以你第一个运行后结果为键对应('one', 'two', 'three') 元组

xizi123 发表于 2020-7-18 22:04:36

谢谢大家的热心帮助,明白啦!!!,我感觉创建字典的方法太多,五种很难记,有没有好方法啊!

Twilight6 发表于 2020-7-18 22:05:43

xizi123 发表于 2020-7-18 22:04
谢谢大家的热心帮助,明白啦!!!,我感觉创建字典的方法太多,五种很难记,有没有好方法啊!

没事,不用特意去记忆~你以后用多了就慢慢计下来了,我们还要学很多函数呢

xizi123 发表于 2020-7-18 22:09:02

Twilight6 发表于 2020-7-18 22:05
没事,不用特意去记忆~你以后用多了就慢慢计下来了,我们还要学很多函数呢

好哒!{:5_110:}
页: [1]
查看完整版本: 请问一下关于字典的问题?