第七章 字典和集合
程序员文章站
2022-07-13 21:45:43
...
字典基础
- 字典 dictionary 是一种可变容器类型,可以保存任意类型对象
- 在 python 中,字典用 { } 来定义
- 使用dict()可以定义一个空字典
- 字典中的元素以键值对 key - value 的方式存储
- d = {key1:value1,key2:value2}
- 字典中的 键 必须是唯一的不能重复
- 字典中的 键 必须是不可变类型(字符串、数值),value 是可变类型(列表……)
- 字典可以进行增删改查
- pop 删除,clear 清空,get / setdefault 查找,update 同时增加多个元素
- v = d.pop('key',-1):(不是-1也可以)如果key存在于d中,就删除key,并把key对应的值赋给v;如果key不存在于d中,就把-1赋值给v
- get 在查找一个不存在的值时,直接把-1赋值给value,setdefault在查找一个不存在的值时,会把这个key和-1(其它值也可以)加到字典中
- len 获取字典长度,str 把字典转换为字符串,in / not in 判断指定的 key 是否包含在字典中
- 字典中的元素是无序的
d = {'北京':22,'上海':24}
# 查
print(d['北京'])
tem = d.get('上海',-1)
print(tem)
tem = d.get('天津',-1)
print(tem)
tem = d.setdefault('上海',-1)
print(tem)
tem = d.setdefault('天津',5)
print(tem)
# 改
d['北京'] = 20
print(d['北京'])
# 增
d['广州'] = 23
print(d)
d.update({'深圳':22,'天津':21})
print(d)
# 删
d.pop('北京')
print(d)
v = d.pop('天津')
print(v,d)
v = d.pop('阿拉伯',-3)
print(v,d)
v = d.pop('广州',-1)
print(v,d)
d.clear()
print(d)
## output ##
## 22
## 24
## -1
## 24
## 5
## 20
## {'北京': 20, '上海': 24, '天津': 5, '广州': 23}
## {'北京': 20, '上海': 24, '天津': 21, '广州': 23, '深圳': 22}
## {'上海': 24, '天津': 21, '广州': 23, '深圳': 22}
## 21 {'上海': 24, '广州': 23, '深圳': 22}
## -3 {'上海': 24, '广州': 23, '深圳': 22}
字典遍历
- 字典也是可迭代(允许每次只获取一个元素)对象,可以使用 for 遍历
- 直接对字典进行遍历,获取的是 key
- for i in d: 获取的是 key
- for k in d.keys(): 获取的是 key
- for v in d.values(): 获取的是 value
- for k,v in d.items(): 获取的是 key 和 value
- l = list(d.keys()) 将所有的key保存成一个列表
- l = list(d.values()) 将所有的value保存成一个列表
- 字典可以嵌套使用,value可以是字典
s = dict(a=1,b=2,c=3)
print(s)
# {'a': 1, 'b': 2, 'c': 3}
for i in s:
print(f'key = {i}, value = {s[i]}')
# key = a, value = 1
# key = b, value = 2
# key = c, value = 3
for i in s.keys():
print(f'key = {i}, value = {s[i]}')
# key = a, value = 1
# key = b, value = 2
# key = c, value = 3
for i in s.values():
print(f'value = {i}')
# value = 1
# value = 2
# value = 3
for k,v in s.items():
print(f'key = {k}, value = {v}')
# key = a, value = 1
# key = b, value = 2
# key = c, value = 3
l = list(s.keys())
print(l)
# ['a', 'b', 'c']
t = tuple(s.values())
print(t)
# (1, 2, 3)
if 'b' in s:
print('Yes')
# Yes
if 3 in s.values():
print('Yes')
# Yes
s = dict(a = [1,2,3],b={'1':100,'2':200},c = 3)
print(s['b']['1'])
# 100
print(s['a'][0])
# 1
上一篇: Linux内核设计与实现——第七章 中断和中断处理
下一篇: 第七章 分支和跳转