Python入门教程第41篇 字典
Posted 不剪发的Tony老师
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python入门教程第41篇 字典相关的知识,希望对你有一定的参考价值。
本篇我们将会学习 Python 中的字典(Dictionary)数据类型,它可以用于组织多个相关的信息。
字典类型
Python 字典是由多个键值对(key-value)组成的集合,每一个 key 和一个 value 相关联。
键值对中的 value 可以是数字、字符串、列表、元组或者其他的字典。实际上,它可以是任何有效的数据类型。
键值对中的 key 必须是不可变对象。也就是说,它不能被改变,具体包括数字、字符串、元组等。
Python 使用大括号()定义字段对象。在大括号内部,我们可以指定零个、一个或者多个键值对。以下示例定义了一个空的字典:
empty_dict =
一般来说,我们会在循环语句之前定义一个空字典,然后在循环内部为其增加键值对。
如果想要查看字典对象的类型,可以使用 type() 函数:
empty_dict =
print(type(empty_dict))
输出结果如下:
<class 'dict'>
以下示例定义了一个新的字典对象,它包含了一些键值对:
person =
'first_name': 'John',
'last_name': 'Doe',
'age': 25,
'favorite_colors': ['blue', 'green'],
'active': True
字典 person 包含了 5 个键值对,分别代表了名字、姓氏、年龄、喜欢的颜色以及活动状态。
访问字典值
如果想要通过 key 访问字典中的 value,可以使用方括号标识或者 get() 方法。
使用方括号标识
如果想要访问 key 关联的 value,可以将其放入方括号内:
dict[key]
以下代码演示了如何访问字典 person 中 first_name 和 last_name 关联的值:
person =
'first_name': 'John',
'last_name': 'Doe',
'age': 25,
'favorite_colors': ['blue', 'green'],
'active': True
print(person['first_name'])
print(person['last_name'])
输出结果如下:
John
Doe
使用 get() 方法
如果我们试图访问不存在的 key,将会返回一个错误信息。例如:
person =
'first_name': 'John',
'last_name': 'Doe',
'age': 25,
'favorite_colors': ['blue', 'green'],
'active': True
ssn = person['ssn']
错误信息如下:
Traceback (most recent call last):
File "dictionary.py", line 15, in <module>
ssn = person['ssn']
KeyError: 'ssn'
为了避免这种错误,我们可以使用字典的 get() 方法:
person =
'first_name': 'John',
'last_name': 'Doe',
'age': 25,
'favorite_colors': ['blue', 'green'],
'active': True
ssn = person.get('ssn')
print(ssn)
输出结果如下:
None
如果 key 不存在, get() 方法将会返回 None,而不是 KeyError 错误。其中,None 表示不存在值,或者空值。
get() 方法也可以通过第二个参数指定一个默认值,当 key 不存在时返回这个默认值。例如,以下示例返回了默认的字符串“000-00-0000”:
person =
'first_name': 'John',
'last_name': 'Doe',
'age': 25,
'favorite_colors': ['blue', 'green'],
'active': True
ssn = person.get('ssn', '000-00-0000')
print(ssn)
输出结果如下:
000-00-0000
增加键值对
字典是一种动态结构,我们可以随时增加新的键值对。
增加键值对时,我们需要指定字典的名称,并且在方括号中指定新的 key,然后指定 value。以下示例为字典 person 增加了一个新的键值对:
person['gender'] = 'Famale'
修改键值对中的值
如果想要修改某个 key 对应的 value,我们需要指定字典的名称,并且在方括号中指定 key,然后给出新的 value。
dict[key] = new_value
以下示例修改了字典 person 中 age 对应的值:
person =
'first_name': 'John',
'last_name': 'Doe',
'age': 25,
'favorite_colors': ['blue', 'green'],
'active': True
person['age'] = 26
print(person)
输出结果如下:
'first_name': 'John', 'last_name': 'Doe', 'age': 26, 'favorite_colors': ['blue', 'green'], 'active': True
删除键值对
使用 del 语句删除字典中的键值对:
del dict[key]
以上语法中,我们需要指定字典的名称以及 key。
以下示例删除了字典 person 中的 active 键:
person =
'first_name': 'John',
'last_name': 'Doe',
'age': 25,
'favorite_colors': ['blue', 'green'],
'active': True
del person['active']
print(person)
输出结果如下:
'first_name': 'John', 'last_name': 'Doe', 'age': 25, 'favorite_colors': ['blue', 'green']
字典遍历
如果想要查看字典中的内容,可以使用 for 循环遍历它的键值对、key或者 value。
从 Python 3.7 开始,当我们遍历字典时,键值对将会按照插入时的顺序返回。
遍历所有的键值对
Python 字典提供了一个 items() 方法,可以返回一个包含键值对列表的对象,类似于一个元组构成的列表。例如:
person =
'first_name': 'John',
'last_name': 'Doe',
'age': 25,
'favorite_colors': ['blue', 'green'],
'active': True
print(person.items())
输出结果如下:
dict_items([('first_name', 'John'), ('last_name', 'Doe'), ('age', 25), ('favorite_colors', ['blue', 'green']), ('active', True)])
如果想要遍历字典中的键值对,可以使用一个 for 循环,指定两个代表键和值的变量,用于解包列表中的元组:
person =
'first_name': 'John',
'last_name': 'Doe',
'age': 25,
'favorite_colors': ['blue', 'green'],
'active': True
for key, value in person.items():
print(f"key: value")
输出结果如下:
first_name: John
last_name: Doe
age: 25
favorite_colors: ['blue', 'green']
active: True
for 循环中的变量名可以自定义,并不一定需要叫做 key 和 value。
遍历所有的键
有时候我们只需要遍历字典中的键,这种情况下可以使用 for 循环加上 keys() 方法。keys() 方法用于返回一个包含字典键的对象。例如:
person =
'first_name': 'John',
'last_name': 'Doe',
'age': 25,
'favorite_colors': ['blue', 'green'],
'active': True
for key in person.keys():
print(key)
输出结果如下:
first_name
last_name
age
favorite_colors
active
实际上,遍历所有键是遍历字典的默认行为。因此,我们可以省略 keys() 方法。以下代码的输出结果和上面的示例相同:
person =
'first_name': 'John',
'last_name': 'Doe',
'age': 25,
'favorite_colors': ['blue', 'green'],
'active': True
for key in person:
print(key)
遍历所有的值
字典的 values() 方法可以返回一个包含全部值的列表。使用 for 循环加上 values() 方法可以遍历字典中的全部值:
person =
'first_name': 'John',
'last_name': 'Doe',
'age': 25,
'favorite_colors': ['blue', 'green'],
'active': True
for value in person.values():
print(value)
输出结果如下:
John
Doe
25
['blue', 'green']
True
总结
- Python 字典是一个键值对的集合,每个键都有一个关联的值。
- 使用方括号或者 get() 方法访问字典中的值。
- 使用 del 语句删除字典中的键值对。
- 使用 for 循环遍历字典的键、值或者键值对。
以上是关于Python入门教程第41篇 字典的主要内容,如果未能解决你的问题,请参考以下文章