Dictionary
字典是KV结构
创建字典
以下三种方式都可以创建字典
d = {}
d = dict()
d = {'a': 1, 'b': 2}
获取元素
以下两种方式都可以获取元素里的值
print(d['a'])
print(d.get('a'))
两者对比
直接使用获取不存在的元素值时d['c']
,会返回KeyError
,然后程序抛出KeyError
错误并退出程序,影响后续代码执行
print(d['c'])
print('Continue')
Traceback (most recent call last):
File "F:/Python/Dream/Data Type/Dict.py", line 7, in <module>
print(d['c'])
KeyError: 'c'
get
方法的好处是在处理不存在的元素时,会返回None
,同时不影响程序继续执行
print(d.get('c'))
print('Continue')
None
Continue
我们也可以设置元素不存在时返回的默认值
print(d.get('c', 'Not exsit'))
Not exsit
适用情况
- 直接获取: 用于要求元素明确存在,不存在必须抛出异常时使用
get
: 适用于判断元素不存在时,我不想收到异常,同时我还想设置默认值,比如没填写性别,默认是其性别为保密
修改、增加元素
修改元素
d['a'] = 0
print(d.get('a'))
0
增加元素
d['c'] = 3
print(d.get('c'))
3
删除元素
d.pop('c')
print(d.get('c'))
None
如果删除一个不存在的Key
,则会抛出KeyError
错误,这里我们只需要修改pop
方法默认返回值,就可以防止它抛出KeyError
print(d.pop('d', 'not exsit'))
not exsit
除此之外,还有其余不太常用的删除元素方式,仅供了解
d.popitem() 随机删除元素 -不太靠谱
del d['c'] del是python关键字,既可以删除变量的定义,也可以删除字典元素
遍历字典Key、Value
获取所有Key
d = {'a': 1, 'b': 2, 'c': 3}
print(d.keys())
返回结果是无序的
dict_keys(['b', 'a', 'c'])
获取所有values
d = {'a': 1, 'b': 2, 'c': 3}
print(d.values())
返回结果同样是是无序的
dict_values([2, 1, 3])
获取Key及其对应的Values
d = {'a': 1, 'b': 2, 'c': 3}
print(d.items())
dict_items([('c', 3), ('a', 1), ('b', 2)])
Format一下
d = {'a': 1, 'b': 2, 'c': 3}
for k, v in d.items():
print('{} --> {}'.format(k, v))
格式化后的输出结果:
b --> 2
c --> 3
a --> 1