Loading...
墨滴

瀋凣

2022/01/06  阅读:55  主题:极简黑

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 创建空字典

  1. 使用大括号 {} 来创建空字典:
# 使用大括号 {} 来创建空字典
>>> emptyDict = {} 
# 打印字典
>>> print(emptyDict)
{}
# 查看字典的数量
>>> print("Length:", len(emptyDict))
Length: 0 
# 查看类型
>>> print(type(emptyDict))
<class 'dict'>
  1. 使用内建函数 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 1in <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 1in <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
{}
点点关注不迷路
点点关注不迷路
- END -

瀋凣

2022/01/06  阅读:55  主题:极简黑

作者介绍

瀋凣