Python 字典类型1

接下去我们学习字典类型。

字典我们前面说过,它的定义方法是在中括号内,用逗号分割开多个任意类型的值,这里要注意,只是它的值,也就是value可以存任意类型,但是它的key只能是不可变类型。

既然key必须是不可变类型,就说明我们不单单可以用字符串来做字典的key,也可以用整型和浮点型,甚至可以用元组来做字典的key。

因为整型,浮点型以及元组都是不可变类型嘛。

dic = {'aaa': 1, 2: 2, 3.2: 4, (7, 8, 9): 10}

这就是造字典的第一种方式,也是我们最常用的方式,直接用大括号来定义。

然后我们来看,我们定义字典的时候它背后到底触发了什么功能?

还是老规矩,打印一下它的类型。

dic = {'aaa': 1, 2: 2, 3.2: 4, (7, 8, 9): 10}
print(dic, type(dic))

结果是dict,那就说明它背后其实调用了,dict加括号这个功能。

然后我们也可以自己调用这个dict加括号功能,然后传大括号进去。

print(dict({'a': 1, 'b': 2}))

这样也是可以的。

这是造字典的第二种方式,除了传大括号这种格式进去,我们还可以这样传。传什么等于什么这种格式,也可以造出字典来。造出来的结果就是,变量名会变成key,变量的只会变成字典的value。

print(dict(a=1, b=2, c=3))

这就是造字典的第三种方式,然后我们来看造字典的第四种方式。

比如我现在有一个列表。

keys = ['name', 'gander', 'age'] 

我现在的需求是把这个字典里的每一个元素取出来,当成是字典的key,然后他们的value就先定义成None。相当于的我们要初始化一个字典,让这三个key的值,一开始都默认为None。

如果用我们已经掌握的知识来实现这个需求的话,我们是不是就只能用for循环来做?

keys = ['name', 'gander', 'age']   
for key in keys:
    dic[key] = None
print(dic)

这样这个字典就造出来了,三个key的value都为None,但是这样太繁琐了,要三行代码才能实现,我们来看一种更加简单的方法。

先定义一个空字典,接着在空字典后面点formkeys,然后把前面的keys传进去,接着穿第二个参数,你想让key的值都等于什么,就传什么进去,我现在想让他们的值都等于None,就传None进去,这样我们就得到了一个新字典了,把它赋值给变量a,打印一下a。

keys = ['name', 'gander', 'age']   
a = {}.fromkeys(keys, None)
print(a)

这样三行代码就实现了刚才的需求。

未经允许不得转载:445IT之家 » Python 字典类型1

赞 (0) 打赏

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏