瀋凣
V1
2022/01/06阅读:116主题:极简黑
python笔记30
Python day30
1. 字典(dict)
“字典这个数据结构活跃在所有Python程序的背后,即便你的源码里并没有直接用到它。”——A.M.Kuchling
字典之所以如此优秀,是因为字典是Python中唯一实现映射关系的内置类型。
1.1 语法
字典是另一种可变容器模型,且可存储任意类型对象。
字典的每个键值
key=>value
对用冒号:
分割,每个对之间用逗号(,
)分割,整个字典包括在花括号{}
中,格式如下所示:
d = {key1 : value1, key2 : value2, key3 : value3 }
注意:dict 作为 Python 的关键字和内置函数,变量名不建议命名为 dict。

键必须是唯一的,但值则不必。
值可以取任何数据类型,但键必须是不可变的,如字符串,数字。

1.2 创建字典
1.2.1 创建空字典
-
使用大括号 {}
来创建空字典:
# 使用大括号 {} 来创建空字典
>>> emptyDict = {}
# 打印字典
>>> print(emptyDict)
{}
# 查看字典的数量
>>> print("Length:", len(emptyDict))
Length: 0
# 查看类型
>>> print(type(emptyDict))
<class 'dict'>
-
使用内建函数 dict()
重建字典:
emptyDict = dict()
# 打印字典
print(emptyDict)
{}
# 查看字典的数量
print("Length:",len(emptyDict))
Length: 0
# 查看类型
print(type(emptyDict))
<class 'dict'>
1.2.2 创建有值的字典
>>> a = {"tencent":"鹅厂","netease":"猪场","baidu":"度娘"}
>>> b = dict(tencent="鹅厂",netease="猪场",baidu="度娘")
>>> c = dict([("tencent","鹅厂"),("netease","猪场"),("baidu","度娘")])
>>> d = dict({"tencent":"鹅厂","netease":"猪场","baidu":"度娘"})
>>> e = dict({"tencent":"鹅厂","netease":"猪场"},baidu="度娘")
>>> f = dict(zip(["tencent","netease","baidu"],["鹅厂","猪场","度娘"]))
这些方法创建的字典是等价的:
>>> a == b == c == d == e == f
True
1.3 字典的增删改查
1.3.1 增
fromkeys()
Python 字典
fromkeys()
函数用于创建一个新字典,以序列 seq 中元素做字典的键,value 为字典所有键对应的初始值。
语法
dict.fromkeys(iterable[, value])
#iterable -- 字典键值列表。
#value -- 可选参数, 设置键序列(iterable)对应的值,默认为 None。
举个栗子:
>>> myDict = dict.fromkeys("Pytho","vanovel")
>>> myDict
{'P': 'vanovel', 'y': 'vanovel', 't': 'vanovel', 'h': 'vanovel', 'o': 'vanovel'}
此方法适用于从无到有快速初始化一个字典。
修改值
>>> myDict["P"] = 857
>>> myDict
{'P': 857, 'y': 'vanovel', 't': 'vanovel', 'h': 'vanovel', 'o': 'vanovel'}
当在字典中找不到对应的键,相同的操作就变成增加一个新的键值对:
>>> myDict["n"] = 666
>>> myDict
{'P': 857, 'y': 'vanovel', 't': 'vanovel', 'h': 'vanovel', 'o': 'vanovel', 'n': 666}
1.3.2 删
pop()
Python 字典
pop()
方法删除字典给定键key
所对应的值,返回值为被删除的值。key
值必须给出。 否则,返回default
值。
语法
pop(key[,default])
#key: 要删除的键值
#default: 如果没有 key,返回 default 值
#返回值: 返回被删除的值
举个栗子:
>>> myDict
{'P': 857, 'y': 'vanovel', 't': 'vanovel', 'h': 'vanovel', 'o': 'vanovel', 'n': 666}
>>> myDict.pop('y')
'vanovel'
>>> myDict
{'P': 857, 't': 'vanovel', 'h': 'vanovel', 'o': 'vanovel', 'n': 666}
当参数指定的key不存在时:
>>> myDict.pop("狗")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: '狗'
#抛出异常:KeyError
如果不想抛出异常,指定default的值:
>>> myDict.pop("狗","打咩!参数不存在,请检查!")
'打咩!参数不存在,请检查!'
popitem()
Python 字典 popitem() 方法删除并返回字典中的最后一对键和值。
语法
popitem()
#返回一个键值对(key,value)形式,按照 LIFO(Last In First Out 后进先出法) 顺序规则,即最末尾的键值对。
*注意:在 3.7 之前的版本中,popitem() 方法删除一个随机项。
举个栗子:
>>> myDict
{'P': 857, 't': 'vanovel', 'h': 'vanovel', 'o': 'vanovel', 'n': 666}
>>> myDict.popitem()
('n', 666)
>>> myDict
{'P': 857, 't': 'vanovel', 'h': 'vanovel', 'o': 'vanovel'}
del
举个栗子:
通过del语句也可实现删除指定键值对:
>>> myDict
{'P': 857, 't': 'vanovel', 'h': 'vanovel', 'o': 'vanovel'}
>>> del myDict['h']
>>> myDict
{'P': 857, 't': 'vanovel', 'o': 'vanovel'}
也可删除整个字典:
>>> del myDict
>>> myDict
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'myDict' is not defined
clear()
Python 字典
clear()
函数用于删除字典内所有元素
语法
dict.clear()
#返回值:无
举个栗子:
>>> mydict = dict.fromkeys("vanovel",250)
>>> mydict
{'v': 250, 'a': 250, 'n': 250, 'o': 250, 'e': 250, 'l': 250}
>>> mydict.clear()
>>> mydict
{}

作者介绍
瀋凣
V1