【Python】第六部分 字典
文章目录
6. 字典
6.1 什么是字典?
字典的实现原理与查字典类似,查字典是先根据部首或者拼音进行查找相对应的页码,在Python中字典是根据key去查找value的位置。
6.2 字典的特点
- 字典中的所有元素都是一个
key-value
对,key不允许重复,但是value可以重复 - 字典中的元素都是无序的
- 字典的key必须是不可变的对象
- 字典也可以根据需要动态地伸缩
- 字典会浪费较大的内存空间
6.3 字典的创建
- 直接写{ }
- 使用 dict( )函数
a = {'name': 'Jack', 'age': 18, 'gender': 'male'}
b = dict(name='mark', age=30, gender='male')
print(a, type(a))
print(b, type(b))
6.4 字典元素的获取(查找字典)
字典名.[key]
字典名.get(key)
- 两种方法的区别:
get()
获取不到指定的key,返回的None,而第一种方法则是报错get()
可以传第二个参数,当查找不到指定的key的时候会返回该值
c = {'name': 'Jane', 'age': 19, 'gender': 'female'}
# 1. 字典名[key]
print(c['name']) # Jane
# 2. 字典名.get(key)
print(c.get('gender')) # female
print(c.get('address', 'China')) # China
# get()和第一种方法的区别是:
# 获取不到指定的key,返回的None,而第一种方法则是报错
# get()可以传第二个参数,当查找不到指定的key的时候会返回该值
6.5 判断key是否存在字典中
d = {'name': 'Jane', 'age': 19, 'gender': 'female'}
print('name' in d) # True
print('name' not in d) # False
6.6 字典的增删改
e = {'name': 'Jane', 'age': 19, 'gender': 'female'}
del e['name'] # 删除指定的键值对
print(e) # {'age': 19, 'gender': 'female'}
e['name'] = 'Mark' # 增加键值对
print(e) # {'age': 19, 'gender': 'female', 'name': 'Mark'}
e['age'] = 30 # 修改值
print(e) # {'age': 30, 'gender': 'female', 'name': 'Mark'}
e.clear() # 清空所有的元素
print(e) # {}
6.7 获取字典视图
字典名.keys()
获取所有的键字典名.values()
获取所有的值字典名.items()
获取所有的键值对
# 字典名.keys() 获取所有的键
d = {'name': 'Jane', 'age': 19, 'gender': 'female'}
print(d.keys()) # dict_keys(['name', 'age', 'gender'])
print(type(d.keys())) # <class 'dict_keys'>
# 将其转换为列表
print(list(d.keys())) # ['name', 'age', 'gender']
# 字典名.values() 获取所有的值
print(d.values()) # dict_values(['Jane', 19, 'female'])
print(type(d.values())) # <class 'dict_values'>
# 将其转换为列表
print(list(d.values())) # ['Jane', 19, 'female']
# 字典名.items() 获取所有的键值对
print(d.items()) # dict_items([('name', 'Jane'), ('age', 19), ('gender', 'female')])
print(type(d.items())) # <class 'dict_items'>
# 将其转换为列表
print(list(d.items())) # [('name', 'Jane'), ('age', 19), ('gender', 'female')]
6.8 字典元素的遍历
f = {'name': 'Jane', 'age': 19, 'gender': 'female'}
for item in f:
print(item, f[item], f.get(item))
6.9 字典的生成式
# 例如:下面的两个列表将他们进行打包生成字典
str1 = ['name', 'age', 'gender']
str2 = ['Jack', 18, 'female']
# i: j ,以i作为键,以j作为值,使用内置的zip()
dic = {i: j for i, j in zip(str1, str2)}
print(dic) # {'name': 'Jack', 'age': 18, 'gender': 'female'}
总结
以上就是今天要讲的内容,希望对大家有所帮助!!!