跟随小甲鱼up主学习Python——字典上中篇

Posted 超级可爱的夹心小朋友

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了跟随小甲鱼up主学习Python——字典上中篇相关的知识,希望对你有一定的参考价值。

字典是Python中唯一实现映射关系的内置函数。映射关系相当于摩斯密码,一一对应的,在映射类型的数据获取上,字典的效率往往快于列表。字典的关键符号为大括号 。集合:set, 字典:dict,通常都是一对键值对的形式出现,键 冒号 值,代码中:吕布就是键,口口布就是值,中间有冒号。

字典:dict>>> x = "吕布", "关羽"
>>> type(x)
<class 'set'>
>>> y = "吕布" : "口口布", "关羽" : "关习习"
>>> type(y)
<class 'dict'>

通过索引键就可以得到值,如果指定一个不存在于字典中的键就可以创建一个新的键值对

>>> y["吕布"]
'口口布'
>>> y["刘备"] = "刘baby"
>>> y
'吕布': '口口布', '关羽': '关习习', '刘备': '刘baby'

创建字典的六种方法

第一种:直接使用大括号和冒号的组合,将映射关系给套牢。

>>> a = "吕布" : "口口布", "关羽" : "关习习", "刘备" : "刘baby"

第二种:使用dict()函数,每个参数之间就是一个对应的键值对,键与值之间直接使用等号进行挂钩,注意:
>>> b = 吕布 = "口口布", 关羽 = "关习习", 刘备 = "刘baby"    //错误写法
SyntaxError: invalid syntax

>>> b = dict(吕布="口口布", 关羽="关习习", 刘备="刘baby")     //正确写法,注:不能往键上加引号

第三种:使用列表作为参数,列表中的每一个元素是使用元组包裹起来的键值对。

>>> c = dict([("吕布" , "口口布"), ("关羽" , "关习习"), ("刘备" , "刘baby")])

第四种:将第一种方法作为参数传递给dict()函数

>>> d = dict("吕布" : "口口布", "关羽" : "关习习", "刘备" : "刘baby")

第五种:混合法

>>> e = dict("吕布" : "口口布", "关羽" : "关习习", 刘备 = "刘baby")

第六种:zip()函数:创建一个聚合多个可迭代对象的迭代器,可作为参数传递给dict()函数

>>> f = dict(zip(["吕布", "关羽",  "刘备"], ["口口布",  "关习习", "刘baby"]))

字典也有增删改查

增:fromkeys(iterable[,values]) 可以使用iterable参数指定的可迭代对象来创建一个新的字典,并将所有的值初始化为values参数指定的值。

>>> d = dict.fromkeys("fish" ,250)
>>> d
'f': 250, 'i': 250, 's': 250, 'h': 250
>>> d['f'] = 70                                                  //可以修改键的值
>>> d
'f': 70, 'i': 250, 's': 250, 'h': 250
>>> d['c'] = 66                                                //如果找不到键,则可以增加一个新的键值对
>>> d
'f': 70, 'i': 250, 's': 250, 'h': 250, 'c': 66

字典和序列的区别:在序列中的元素是可以重复的,而字典中的键值对,它一个键对应一个值,并不会存在重复的键,如果重复了就用新的值去覆盖旧的值。

删:pop(key[,default])

>>> d.pop('s')
250
>>> d
'f': 70, 'i': 250, 'h': 250, 'c': 66

如果pop一个不存在的键就会抛出异常

>>> d.pop('a')
Traceback (most recent call last):
  File "<pyshell#26>", line 1, in <module>
    d.pop('a')
KeyError: 'a'

popitem()在3.7版本以后,它作用是删除最后一个加入字典的键值对

>>> d.popitem()
('c', 66)
>>> d
'f': 70, 'i': 250, 'h': 250

del关键字也可以用于删除一个指定的字典元素,也可以直接加上字典的名字,相当于干掉了整个字典,字典就不存在了。

>>> del d['i']
>>> d
'f': 70, 'h': 250
>>> del d
>>> d

Traceback (most recent call last):
  File "<pyshell#32>", line 1, in <module>
    d
NameError: name 'd' is not defined

clear()方法:只清空字典中的内容

>>> d = dict.fromkeys("fish" ,250)
>>> d
'f': 250, 'i': 250, 's': 250, 'h': 250
>>> d.clear()
>>> d

以上是关于跟随小甲鱼up主学习Python——字典上中篇的主要内容,如果未能解决你的问题,请参考以下文章

跟随小甲鱼up主学习Python——字典上中篇

跟随小甲鱼up主学习Python 序列上中篇

跟随小甲鱼up主学习Python 序列上中篇

跟随小甲鱼up主学习Python——字典下篇

跟随小甲鱼up主学习Python——字典下篇

跟随小甲鱼up主学习Python——字典下篇