Python数据类型 - 字典

我们将在本节学习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'}

从字典中删除元素

以下是从字典中删除元素的一些方法:

  1. pop() 方法:删除并返回相应给定键的值。
  2. popitem()方法:它将从字典中删除并返回任意 一个(key, value)
  3. clear() 方法:它将删除字典中的所有元素,但不删除字典。
  4. 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则返回相应的值。如果同时dkey不存在的错误将得到提升。
popitem() 它将返回并从字典中删除键和值。
setdefault(key[,d]) 返回键的值。如果未找到键,将创建一个带有值的新键dd并将返回该键。
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当字典的所有键都是时返回TrueTrue当字典为空时它也会返回。
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]