Python 数据类型 - 字典
Jinku Hu
2023年1月30日
我们将在本节学习 Python 中的字典(Dictionary
)数据类型。你将学习如何创建字典以及如何添加和删除字典中的元素。
字典是一种 Python 内置数据类型,其数据/值是键值对。字典包含无序元素。如果你知道键,则可以检索字典的数据或值。
创建字典
可以使用大括号来创建字典 {}
,每个元素都是包含键和值的对。
Python 字典键必须是不可变的数据类型,值可以是任何类型。
来看下面的字典的例子,
>>> x = {1:'blue', 'key':'pink'}
>>> print(type(x))
<class 'dict'>
>>> print('x[1] = ', x[1]) #using key to retrive value
x[1] = blue
>>> print("x['key'] =", x['key']) #using key to retrive value
x['key'] = pink
也可以使用该 dict()
方法初始化字典。
>>> dict({1: 'Blue', 2: 'Pink'})
{1: 'Blue', 2: 'Pink'}
用 get()
方法来访问字典元素
你可以使用键访问字典的值。键可以与索引访问运算符 []
一起使用,如上所述,也可以与 get()
方法一起使用。
如果在使用 get()
方法时未找到键,将会返回 None
而不是报错。
>>> d = dict({1: 'Blue', 2: 'Pink'})
>>> print(d[1])
Blue
>>> print(d.get(1))
Blue
>>> print(d[3])
Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
d[3]
KeyError: 3
>>> print(d.get(3))
None
更新字典元素
字典是可变的,因此我们可以更新字典,添加或删除字典中的元素。可以使用赋值运算符更新字典的元素。
使用字典中不存在的键更新元素时,将创建新的键值对,否则将更新键对应的值。
>>> d = dict({1: 'Blue', 2: 'Pink'})
>>> d[1] = 'Yellow'
>>> print(d)
{1: 'Yellow', 2: 'Pink'}
>>> d[3] = 'Black'
>>> print(d)
{1: 'Yellow', 2: 'Pink', 3: 'Black'}
从字典中删除元素
以下是从字典中删除元素的一些方法:
pop()
方法:删除并返回相应给定键的值。popitem()
方法:它将从字典中删除并返回任意一个(key, value)
。clear()
方法:它将删除字典中的所有元素,但不删除字典。del
keyword:它可以删除特定方法或整个字典。
下面举些例子,
>>> d = dict({1: 'Blue', 2: 'Pink', 3:'Yellow', 4:'Red'})
>>> print(d.pop(2))
Pink
>>> print(d)
{1: 'Blue', 3: 'Yellow', 4: 'Red'}
>>> print(d.popitem())
(4, 'Red')
>>> print(d)
{1: 'Blue', 3: 'Yellow'}
>>> del d[3]
>>> print(d)
{1: 'Blue'}
>>> d.clear()
>>> print(d)
{}
>>> del d
>>> print(d)
Traceback (most recent call last):
File "<pyshell#13>", line 1, in <module>
print(d)
NameError: name 'd' is not defined
适用于 Python 字典的方法
下面列出了 Python 字典中的一些方法,
方法 | 描述 |
---|---|
clear() |
清除字典中的所有项目 |
copy() |
复制字典 |
fromkeys(seq[,v]) |
返回带有 seq 元素的字典作为键,值将等于 v |
get(key[,d]) |
获取键的值,如果没有键,将返回 d |
items() |
将字典中的项返回为(键,值) |
keys() |
返回字典的键 |
pop(key[,d]) |
删除对应的项目 key 。如果键不存在,d 则返回相应的值。如果同时 d 和 key 不存在的错误将得到提升 |
popitem() |
它将返回并从字典中删除键和值 |
setdefault(key[,d]) |
返回键的值。如果未找到键,将创建一个带有值的新键 d ,d 并将返回该键 |
update([other]) |
使用键和值更新字典 other |
values() |
返回字典的值 |
其他字典操作
字典会员检查
关键字 in
用来检查某个元素是否是字典中的成员。
Note
字典的键用于成员资格检查,而不是字典的值。
>>> d = dict({1: 'Blue', 2: 'Pink', 3:'Yellow', 4:'Red'})
>>> print(2 in d)
True
>>> print(5 in d)
False
字典遍历
你可以使用 for
循环遍历字典,
>>> d = dict({1: 'Blue', 2: 'Pink', 3:'Yellow', 4:'Red'})
>>> for i in d:
print(i)
1
2
3
4
带字典的内置函数
以下是一些可与字典一起执行不同任务的内置函数:
功能 | 描述 |
---|---|
all() |
True 当字典的所有键都是时返回 True 。True 当字典为空时它也会返回 |
any() |
True 当字典中的任何一个键出现时返回 True 。它 False 在字典为空时返回 |
cmp() |
比较两个字典 |
len() |
返回字典中的项目数或字典的长度 |
sorted() |
返回字典键的排序列表 |
下面举些例子,
>>> d = dict({1: 'Blue', 2: 'Pink', 3:'Yellow', 4:'Red'})
>>> print(len(d))
4
>>> print(sorted(d))
[1, 2, 3, 4]