字典
首次发布时间:2020/8/3
最后修改时间:2020/8/3
本系列文章基于 python3 版本
摘要
- 字典介绍
- 格式
- 通过键(key)访问值(value)
- 字典的常见操作
- 修改元素
- 添加元素
- 删除元素
字典介绍
各位应该都用过新华字典,查字的时候,常常会用到按拼音查字,可以快速帮我们找到想找的字
- 比如想找
大
字,先找d
,再找a
,就可以找到大
的谐音字,然后可以从中找到大
字 dict = {'d':'a'}
就是字典的格式
格式
- 在程序中,字典的格式:
China = {'palace':'ImperialPalace', 'area':720000, 'city':'Beijing'}
dict = {key:value}
- 字典和列表一样,可以存储 多个数据
- 字典需要查找某个 值(value) 的时候,是根据 key 来获取的
- 字典的每个元素由 2 部分组成,
键 : 值
,例如【‘city’:‘Beijing’】
通过键(key)访问值(value)
通过键(key)来访问值(value)
China = {'palace':'ImperialPalace', 'area':720000, 'city':'Beijing'}
print(China['palace'])
- 输出结果:
ImperialPalace
如果访问的键不存在,那么就会报错:
China = {'palace':'ImperialPalace', 'area':720000, 'city':'Beijing'}
print(China['country'])
- 输出结果:
Traceback (most recent call last):
File "test.py", line 2, in <module>
print(China['country'])
KeyError: 'country
get() 方法
- 如果不确定访问的键(key)是否存在,而又想获取到相应的值(value),可以用 get() 方法
- get() 方法可以设置默认值,当相应的 key 不存在时,则返回默认值,而不会报错
- 当 key 不存在,而且没有默认值时,就返回 None
China = {'palace':'ImperialPalace', 'area':720000, 'city':'Beijing'}
print(China.get('city')) # key 存在就返回相应的 value
print(China.get('country')) # key 不存在,就返回 None
print(China.get('country', 'China')) # key 不存在,就返回默认值 'China'
- 输出结果
Beijing
None
China
字典的常见操作
修改元素
- 字典的每个元素中的数据都是可以修改的,只要能通过 key 找到,就可以修改
China = {'palace':'ImperialPalace', 'area':720000, 'city':'Beijing'}
China['area'] = 730000
print(China['area'])
- 输出结果:
730000
添加元素
- 上面说过,当访问不存在的 key 时会报错
- 但是在赋值时,通过
变量名[key] = value
的方式,可以创建新的键值对,不会报错
China = {'palace':'ImperialPalace', 'area':720000, 'city':'Beijing'}
China['country'] = 'China'
print(China)
- 输出结果:
{'palace': 'ImperialPalace', 'area': 720000, 'city': 'Beijing', 'country': 'China'}
删除元素
- 删除字典的元素,有两种方式:
del
:删除指定的元素,或删除整个字典clear()
:清空整个字典
del
删除指定元素:
China = {'palace':'ImperialPalace', 'area':720000, 'city':'Beijing'}
China['country'] = 'China'
print(China)
del China['country']
print(China)
- 输出结果:
{'palace': 'ImperialPalace', 'area': 720000, 'city': 'Beijing', 'country': 'China'}
{'palace': 'ImperialPalace', 'area': 720000, 'city': 'Beijing'}
del
删除整个字典:
China = {'palace':'ImperialPalace', 'area':720000, 'city':'Beijing'}
print(China)
del China
print(China) # 此时字典已被删除,所以打印字典会报错
- 输出结果:
{'palace': 'ImperialPalace', 'area': 720000, 'city': 'Beijing'}
Traceback (most recent call last):
File "test.py", line 7, in <module>
print(China)
NameError: name 'China' is not defined
clear()
清空整个字典:
China = {'palace':'ImperialPalace', 'area':720000, 'city':'Beijing'}
print(China)
China.clear()
print(China)
- 输出结果:
{'palace': 'ImperialPalace', 'area': 720000, 'city': 'Beijing'}
{}
clear() 会清空字典的元素,但是不会把字典删除掉
查看字典中键值对(key:value)的个数
- len()
China = {'palace':'ImperialPalace', 'area':720000, 'city':'Beijing'}
print(len(China))
- 输出结果:
3
查看字典所有的 key
- keys()
- 返回一个包含字典所有 key 的列表
China = {'palace':'ImperialPalace', 'area':720000, 'city':'Beijing'}
print(China.keys())
- 输出结果:
dict_keys(['palace', 'area', 'city'])
查看字典所有的 value
- values()
- 返回一个包含字典所有 value 的列表
China = {'palace':'ImperialPalace', 'area':720000, 'city':'Beijing'}
print(China.values())
- 输出结果:
dict_values(['ImperialPalace', 720000, 'Beijing'])
查看字典中的元素
- items()
- 返回一个包含所有 (键,值)元组 的列表
China = {'palace':'ImperialPalace', 'area':720000, 'city':'Beijing'}
print(China.items())
- 输出结果:
dict_items([('palace', 'ImperialPalace'), ('area', 720000), ('city', 'Beijing')])
判断某个 key 是否在字典中
dict.__contains__(key)
- 如果 key 在字典中,返回 True,否则返回 False
China = {'palace':'ImperialPalace', 'area':720000, 'city':'Beijing'}
print(China.__contains__('palace'))
print(China.__contains__('country'))
- 输出结果:
True
False