Python 数据类型 - 字典

Jinku Hu 2023年1月30日 2018年2月12日
  1. 创建字典
  2. get() 方法来访问字典元素
  3. 更新字典元素
  4. 从字典中删除元素
  5. 适用于 Python 字典的方法
  6. 其他字典操作
  7. 字典遍历
  8. 带字典的内置函数
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]
Author: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn