字典
零、字典的应用
思考:如何快速存储一组数据?
答案:使用列表,p = ['Tomcat', 18, '男']
思考:如何提取想要的数据?
答案:通过下标来提取,p[0]
思考:如果列表中的元素顺序发生改变,对应就的数据如何规避错误?
答案:使用字典。
- 字典通过
key
和value
来表示字典中元素,每个元素使用逗号隔开,元素之间没有顺序。 - 字典是可变数据类型,它是无序的,可迭代的数据类型
一、字典的创建
# 1. 创建一个字典
d1 = {'a': 11, 'b': 22, 'c': 33}
print(d1, type(d1)) # {'a': 11, 'b': 22, 'c': 33} <class 'dict'>
# 2. 创建一个空字典
d21 = {}
d22 = dict()
print(d21, type(d21)) # {} <class 'dict'>
print(d22, type(d22)) # {} <class 'dict'>
# 3. dict函数
# 3.1 通过键值的映射来创建
d31 = dict([('a', 11), ('b', 22), ('c', 33)])
# d31 = dict((('a', 11), ('b', 22), ('c', 33))) # dict()函数中传入列表和元组均可
print(d31) # {'a': 11, 'b': 22, 'c': 33} <class 'dict'>
# 3.2 使用key=value的形式创建一个字典
d32 = dict(
a=11,
b=22,
c=33
)
print(d32, type(32)) # {'a': 11, 'b': 22, 'c': 33} <class 'dict'>
二、常用方法
2.1 增
d1 = {0: 11, 1: 22, 2: 33}
d1[3] = 55
print(d1) # {0: 11, 1: 22, 2: 33, 3: 55}
2.2 删
方法 | |
---|---|
del object | |
D.clear() -> None |
del
d1 = {0: 11, 1: 22, 2: 33}
del d1[1]
print(d1) # {0: 11, 2: 33}
del d1
print(d1) # 报错,d1对象已经被删除
clear()
d1 = {0: 11, 1: 22, 2: 33}
d1.clear()
print(d1) # {}
2.3 改
d1 = {0: 11, 1: 22, 2: 33}
d1[2] = 55
print(d1) # {0: 11, 1: 22, 2: 55}
2.4 查
方法 | 描述 |
---|---|
D[key] | 通过key 获取value ,如果key 未找到,则报错 |
D.get(key, default=None) -> Union | 通过key 获取value ,如果key 未找到,则返回指定的值,默认返回None |
D.keys() -> KeysView | |
D.values() -> ValuesView | |
D.items() -> ItemsView |
- 通过
key
来获取value
d1 = {'A': 11, 1: 22, 2: 33}
print(d1['A']) # 11
print(d1['B']) # KeyError,没有要找的key
get()
参数解释:
default=None
:当key未找到时,指定get()
方法的返回值,默认返回None。
d1 = {'A': 11, 1: 22, 2: 33}
print(d1.get('A')) # 11
# 修改get()的参数
print(d1.get('B', '真的没有吗?')) # 真的没有吗?
keys()
d1 = {'A': 11, 1: 22, 2: 33}
print(d1.keys()) # dict_keys(['A', 1, 2]),是可迭代对象
values()
d1 = {'A': 11, 1: 22, 2: 33}
print(d1.values()) # dict_values([11, 22, 33]),是可迭代对象
items()
d1 = {'A': 11, 1: 22, 2: 33}
print(d1.items()) # dict_items([('A', 11), (1, 22), (2, 33)]),是可迭代对象
三、遍历
3.1 从字典对象中遍历
d1 = {'A': 11, 'B': 22, 'C': 33}
# 遍历字典的key
for i in d1: # 默认遍历的是字典的key
print(i, end=' ') # A B C
# 遍历字典的value
for i in d1:
print(d1[i], end=' ') # 11 22 33
3.2 遍历keys
d1 = {'A': 11, 'B': 22, 'C': 33}
for k in d1.keys(): # 遍历字典的key
print(k, end=' ') # A B C
3.3 遍历values
d1 = {'A': 11, 'B': 22, 'C': 33}
for v in d1.values(): # 遍历字典的value
print(v, end=' ') # 11 22 33
3.4 遍历items
d1 = {'A': 11, 'B': 22, 'C': 33}
for i in d1.items():
pirnt(i)
''' 输出结果:
('A', 11)
('B', 22)
('C', 33)
'''
for k, v in d1.items():
print(k, v)
''' 输出结果:
A 11
B 22
C 33
'''