字典的用途
字典是 Python 提供的一种常用的数据结构, 它用于存放具有映射关系的数据. 字典相当于保存了两组数据, 其中一组数据是关键数据, 被称为 key; 另一组数据可通过 key 来访问, 被称为 value. 形象地看, 字典中 key 和 value 的关联关系如下图所示:
注意: key 是十分关键的数据, 而且访问 value 的时候需要通过 key 进行访问, 因此字典的 key 不允许重复.
创建和使用字典
使用 dict 函数创建
可以使用函数 dict 从其他映射或键值对序列创建字典
- items=[('name','god'),('age',42)]
- d=dict(items)
- print(d)
- # 结果为 {
- 'name': 'god', 'age': 42
- }
- # 如果不为 dict 函数传入数据, 则会创建一个空字典
- t=dict()
- print(t)
- # 结果为 {
- }
除了传递键值对序列创建字典还可以指定关键字参数来创建字典
- d=dict(name='god',age=12)
- print(d)
- # 结果为 {
- 'name':'god','age':12
- }
字典的基本用法
1. 通过 key 访问 value
- items = {
- 'name': 'god', 'age': 42
- }
- print(items['age'])
- # 结果为 42
2. 通过 key 添加 key-value 对
- items = {
- 'name': 'god', 'age': 42
- }
- items['sex'] = 'man'
- print(items)
- # 结果为 {
- 'name': 'god', 'age': 42, 'sex': 'man'
- }
3. 通过 key 删除 key-value 对
- items = {
- 'name': 'god', 'age': 42
- }
- del items['name']
- print(items)
- # 结果为 {
- 'age': 42
- }
4. 通过 key 值修改值
- items = {
- 'name': 'god', 'age': 42
- }
- items['name']='James'
- print(items)
- # {
- 'name': 'James', 'age': 42
- }
5. 通过 key 判断指定的 key-value 是否存在
- items = {
- 'name': 'god', 'age': 42
- }
- print('name' in items)
- print('sex' in items)
- # 结果为 True False
字典常用方法
1.clear()
clear() 用于清空字典中所有的 key-value 对, 对一个字典执行 clear() 方法之后, 该字典就会变成一个空字典, 例子如下所示:
- man={
- 'name':'james','age':12
- }
- print(man)
- # 结果为 {
- 'name':'james','age':12
- }
- man.clear()
- print(man)
- # 结果为 {
- }
2.get() 方法
get() 方法是根据 key 值来获取 value, 使用 get() 方法的时候, 如果 key 值不存在则会返回 None. 示例如下:
- man={
- 'name':'james','age':12
- }
- print(man.get('name'))
- # 结果为'james'
- print(man.get('sex'))
- # 结果为 None
3.update() 方法 ####
update() 方法可使用一个字典所包含的 key-value 对来更新己有的字典. 在执行 update() 方法时, 如果被更新的字典中己包含对应的 key-value 对, 那么原 value 会被覆盖; 如果被更新的字典中不包含对应的 key-value 对, 则该 key-value 对被添加进去. 例如如下代码:
- man={
- 'name':'james','age':12
- }
- man.update({
- 'name':'tom'
- })
- print(man)
- # 结果为 {
- 'name': 'tom', 'age': 12
- }
- man.update({
- 'sex':'man'
- })
- print(man)
- # 结果为: {
- 'name': 'tom', 'age': 12, 'sex': 'man'
- }
- 4.items(),keys(),values()
items(),keys(),values() 分别用于获取字典中的所有 key-value 对, 所有 key, 所有 value. 这三个方法依次返回 dict_items,dict_keys 和 dict_values 对象.
- man={
- 'name':'james','age':12
- }
- print(man.items())
- # 结果为: dict_items([('name', 'tom'), ('age', 12), ('sex', 'man')])
- print(man.keys())
- # 结果为 dict_keys(['name', 'age', 'sex'])
- print(man.values())
- # 结果为 dict_values(['tom', 12, 'man'])
5.pop() 方法
pop() 方法用于获取指定 key 对应的 value, 并删除这个 key-value 对.
- man={
- 'name':'james','age':12
- }
- print(man.pop('name'))
- print(man)
- # 结果为 james 和 {
- 'age':12
- }
6.setdefault() 方法
setdefault() 方法也用于根据 key 来获取对应 value 的值. 但该方法有一个额外的功能, 即当程序要获取的 key 在字典中不存在时, 该方法会先为这个不存在的 key 设置一个默认的 value, 然后再返回该 key 对应的 value. 总之, setdefault() 方法总能返回指定 key 对应的 value; 如果该 key-value 对存在, 则直接返回该 key 对应的 value; 如果该 key-value 对不存在, 则先为该 key 设置默认的 value, 然后再返回该 key 对应的 value.
如下代码示范了 setdefault() 方法的用法:
- cars = {
- 'BMW': 8.5, 'BENS': 8.3, 'AUDI': 7.9
- }
- # 设置默认值, 该 key 在 dict 中不存在, 新增 key-value 对
- print(cars.setdefault('PORSCHE', 9.2)) # 9.2
- print(cars)
- # 设置默认值, 该 key 在 dict 中存在, 不会修改 dict 内容
- print(cars.setdefault('BMW', 3.4)) # 8.5
- print(cars)
7.fromkeys() 方法
fromkeys() 方法使用给定的多个 key 创建字典, 这些 key 对应的 value 默认都是 None; 也可以额外传入一个参数作为默认的 value.
- # 使用列表创建包含 2 个 key 的字典
- a_dict = dict.fromkeys(['a', 'b'])
- print(a_dict) # {
- 'a': None, 'b': None
- }
- # 使用元组创建包含 2 个 key 的字典
- b_dict = dict.fromkeys((13, 17))
- print(b_dict) # {
- 13: None, 17: None
- }
- # 使用元组创建包含 2 个 key 的字典, 指定默认的 value
- c_dict = dict.fromkeys((13, 17), 'good')
- print(c_dict) # {
- 13: 'good', 17: 'good'
- }
博主开通了微信公众号 "python 做些事" 会定期更新 python 和 AI 知识, 希望大家可以喜欢
来源: https://www.cnblogs.com/qiujichu/p/12952727.html