大家好,我是腾意。

Python 数据类型详细篇:字典

前面的几个小节我们分别学习了字符串、列表、和元组等等几种 Python 中的基础数据类型,这节课我们来学习 Python 中另一个比较重要的数据类型–字典,字典和其他我们已经学习过的数据类型都有些不一样,具体不一样在哪里我们一起来看一下:

1. 字典简介

字典由键和对应值成对组成,字典中所有的键值对放在 {} 中间,每一对键值之间用逗号分开,例如:

  • {‘a’:‘A’, ‘b’: ‘B’, ‘c’:‘C’}
  • 字典中包含 3 个键值对
  • 键 ‘a’ 的值是 ‘A’
  • 键 ‘b’ 的值是 ‘B’
  • 键 ‘c’ 的值是 ‘C’
  • {1:100, 2: 200, 3:300}
  • 字典中包含 3 个键值对
  • 键 1 的值是 100
  • 键 2 的值是 200
  • 键 3 的值是 300

字典通常用于描述对象的各种属性,例如一本书,有书名、作者名、出版社等各种属性,可以使用字典描述如下:

>>> book = {'title': 'Python 入门基础', 'author': '张三', 'press': '机械工业出版社'}
>>> book['title']
'Python 入门基础'
>>> book['author']
'张三'
>>> book['press']
'机械工业出版社'
  • 在第 1 行,创建了一个字典用于描述一本书;
  • 在第 2 行,使用字符串 ‘title’ 作为键(索引)访问字典中对应的值;
  • 在第 4 行,使用字符串 ‘author’ 作为键(索引)访问字典中对应的值;
  • 在第 6 行,使用字符串 ‘press’ 作为键(索引)访问字典中对应的值。

2. 常见操作

本节介绍对字典的最常见的几种操作,包括:

2.1 读取字典

>>> x = {'a':'A', 'b':'B'}
>>> x['a']
'A'
>>> x['b']
'B'
  • 在第 1 行,创建一个具有 2 个键值对的字典;
  • 在第 2 行,读取键 ‘a’ 对应的值;
  • 在第 3 行,结果显示为 ‘A’;
  • 在第 4 行,读取键 ‘b’ 对应的值;
  • 在第 5 行,结果显示为 ‘B’。

2.2 修改字典

>>> x = {'a':'A', 'b':'B'}
>>> x['a'] = 'AA'
>>> x['b'] = 'BB'
>>> x
{'a':'AA', 'b':'BB'}
  • 在第 1 行,创建一个具有 2 个键值对的字典;
  • 在第 2 行,修改键 ‘a’ 对应的值为 ‘AA’;
  • 在第 3 行,修改键 ‘b’ 对应的值为 ‘BB’;
  • 在第 4 行,显示修改后的字典。

2.3 在字典中增加键值对

>>> x = {'a':'A', 'b':'B'}
>>> x['c'] = 'C'
>>> x
{'a':'A', 'b':'B', 'c':'C'}
  • 在第 1 行,创建一个具有 2 个键值对的字典;
  • 在第 2 行,在字典中增加一个键值对:键为 ‘c’,值为 ‘C’;
  • 在第 3 行,显示新增后的字典;
  • 在第 4 行,新增后的自动包含 3 个键值对。

2.4 在字典中删除键值对

>>> x = {'a':'A', 'b':'B', 'c': 'C'}
>>> del x['b']
>>> x
{'a':'A', 'c':'C'}
  • 在第 1 行,创建一个具有 3 个键值对的字典;
  • 在第 2 行,使用 del 语句从字典 x 中删除键 ‘b’ 对应的键值对;
  • 在第 3 行,显示删除后的字典;
  • 在第 4 行,删除一个键值对后,字典仅包含 2 个键值对。

2.5 查询字典

通过关键字 in 检查字典中是否包含指定元素,示例如下:

>>> x = {'a':'A', 'b':'B'}
>>> 'a' in x
True
>>> 'c' in x
False
  • 在第 1 行,创建一个具有 2 个键值对的字典;

  • 在第 2 行,使用表达式

key in dictionary

,检测键 ‘a’ 是否在字典 x 中;

  • 在第 3 行,结果为真,表示键 ‘a’ 在字典 x 中;

  • 在第 3 行,使用表达式

key in dictionary

,检测键 ‘b’ 是否在字典 x 中;

  • 在第 4 行,结果为假,表示键 ‘b’ 不在字典 x 中。

3. 常见函数

3.1 len (字典) 函数

使用函数 len 获取字典中键值对的数量,示例如下:

>>> x = {'a':'A', 'b':'B'}
>>> len(x)
2
  • 在第 1 行,创建一个具有 2 个键值对的字典;
  • 在第 2 行,使用函数 len (x) 获取字典 x 中键值对的数量;
  • 在第 3 行,结果显示字典 x 包含 2 个键值对。

4. 常见方法

4.1 clear () 方法

clear () 方法删除字典中所有的键值对,示例如下:

>>> x = {'a':'A', 'b':'B'}
>>> x.clear()
>>> x
{}
  • 在第 1 行,创建一个具有 2 个键值对的字典;
  • 在第 2 行,使用方法 clear () 删除字典中所有的键值对;
  • 在第 3 行,显示删除后的字典;
  • 在第 4 行,结果显示字典为空,不包含任何键值对。

4.2 pop (key) 方法

pop (key) 方法删除字典给定键 key 所对应的键值对,返回被删除的值,示例如下:

>>> x = {'a':'A', 'b':'B', 'c': 'C'}
>>> x.pop('b')
'B'
>>> x
{'a':'A', 'c':'C'}
  • 在第 1 行,创建一个具有 3 个键值对的字典;
  • 在第 2 行,使用方法 pop (‘b’) 从字典中删除键 ‘b’ 对应的键值对;
  • 在第 3 行,方法 pop (‘b’) 返回键 ‘b’ 对应的值 ‘B’;
  • 在第 4 行,显示删除后的字典;
  • 在第 5 行,删除一个键值对后,字典仅包含 2 个键值对。

4.3 items方法

返回可遍历的(键, 值) 元组。示例如下:

all_students = {'tom': 95, 'jerry': 80, 'mike': 99, 'john': 70}

for item in all_students.items():
    print(item)

运行结果

('tom', 95)
('jerry', 80)
('mike', 99)
('john', 70)

5. 遍历字典

Python 提供了 for 循环语句用于遍历列表、集合、字典等数据类型,关于 for 循环语句的详细用法,请参考词条 Python 的循环控制语句

5.1 使用 for key in dict 遍历字典

可以使用 for key in dict 遍历字典中所有的键,示例如下:

x = {'a':'A', 'b':'B'}
for key in x:
    print(key)
  • 在第 1 行,创建一个包含 2 个键值对的字典;
  • 在第 2 行,遍历字典中所有的键 ‘a’、‘b’。

程序输出结果如下:

a
b

5.2 使用 for key in dict.keys () 遍历字典的键

字典提供了 keys () 方法返回字典中所有的键,可以使用 for key in dict.keys () 遍历字典中所有的键,示例如下:

x = {'a':'A', 'b':'B'}
for key in x.keys():
    print(key)
  • 在第 1 行,创建一个包含 2 个键值对的字典;
  • 在第 2 行,遍历字典中所有的键 ‘a’、‘b’。

程序输出结果如下:

a
b

5.3 使用 for values in dict.values () 遍历字典的值

字典提供了 values () 方法返回字典中所有的值,可以使用 for values in dict.values () 遍历字典中所有的值,示例如下:

x = {'a':'A', 'b':'B'}
for value in x.values():
    print(value)
  • 在第 1 行,创建一个包含 2 个键值对的字典;
  • 在第 2 行,遍历字典中所有的值 ‘A’、‘B’。

程序输出结果如下:

A
B

5.4 使用 for item in dict.items () 遍历字典的键值对

字典提供了 items () 方法返回字典中所有的键值对 item,键值对 item 是一个元组(第 0 项是键、第 1 项是值),可以使用 for item in dict.items () 遍历字典中所有的键值对,示例如下:

x = {'a':'A', 'b':'B'}
for item in x.items():
    key = item[0]
    value = item[1]
    print('%s:%s' % (key, value))
  • 在第 1 行,创建一个包含 2 个键值对的字典;
  • 在第 2 行,遍历字典中所有的键值对 item;
  • 在第 3 行,键值对 item 是一个元组,item [0] 是键;
  • 在第 4 行,键值对 item 是一个元组,item [1] 是值;
  • 在第 5 行,打印键和值。

程序输出结果如下:

a:A
b:B

5.5 使用 for key,value in dict.items () 遍历字典的键值对

可以使用 for key,value in dict.items () 遍历字典中所有的键值对,示例如下:

x = {'a':'A', 'b':'B'}
for key,value in x.items():
    print('%s:%s' % (key, value))
  • 在第 1 行,创建一个包含 2 个键值对的字典;
  • 在第 2 行,遍历字典中所有的键值对 item;
  • 在第 3 行,键值对 item 是一个元组,item [0] 是键;
  • 在第 4 行,键值对 item 是一个元组,item [1] 是值;
  • 在第 5 行,打印键和值。

程序输出结果如下:

a:A
b:B

版权声明:如无特殊说明,文章均为本站原创,版权所有,转载需注明本文链接

本文链接:http://www.bianchengvip.com/article/Python-dict/