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

results matching ""

    No results matching ""