Python3-2020-测试开发-8- 字典dict
2021-01-28 13:16
标签:color bsp aaaaa 对象 默认 res 直接 列表 序列 一、字典的特点 二、字典的创建 2.1 第一种方式 2.2 第二种方式 2.3 第三种方式 2.4 第四种方式zip() 2.5 通过fromkeys()创建值为空的字典 三、字典的创建 3.1 一般访问,键不存在时,报错 3.2 通过get()访问,键不存在时,默认返回None,也可自定义返回值 3.3 列出所有的键值对 items() 3.4 列出所有的键keys(),值values() 3.5 len() 字典中有多少个键值对 3.6 检测一个“键”是否存在于字典中 四、字典元素的添加,修改,删除 4.1 添加,如果添加的键存在,则会覆盖旧的键,如果不存在,新增键值对 4.2 update() 将新字典中的的所有键值对全部添加到旧的字典中,如果key重复,则直接覆盖 4.3 del():删除字典中的值 pop(): 删除字典中的值并将值返回 clear():清空字典 popitem():随机删除和返回该键键值对 五、序列解包 5.1 序列解包 5.2 字典的序列解包时,默认是对键进行操作 Python3-2020-测试开发-8- 字典dict 标签:color bsp aaaaa 对象 默认 res 直接 列表 序列 原文地址:https://www.cnblogs.com/chushujin/p/12838121.html"""
字典:通过键对象,获取对应的值
特点:“键”是任意不可变数据,比如:整数,浮点数,字符串,元组
但是:列表、字典,集合这些可变对象,不能作为键使用,并且“键”不能重复
"""
# 第一种方式
a1 = {‘name‘:‘chu‘,‘age‘:18,‘job‘:‘teacher‘}
print(a1) # {‘name‘: ‘chu‘, ‘age‘: 18, ‘job‘: ‘teacher‘}
# 第二种方式
a2 = dict(name= ‘chu‘,age=18)
print(a2) # {‘name‘: ‘chu‘, ‘age‘: 18}
# 第三种方式
a3 = [(‘name‘,‘chu‘),(‘age‘,18)]
print(dict(a3)) # {‘name‘: ‘chu‘, ‘age‘: 18}
# 第四种方式zip()
k = [‘name‘,‘age‘,‘job‘]
v = [‘chu‘,18,‘teacher‘]
a4 = dict(zip(k,v))
print(a4) # {‘name‘: ‘chu‘, ‘age‘: 18, ‘job‘: ‘teacher‘}
# 通过fromkeys()创建值为空的字典
a5 = dict.fromkeys([‘name‘,‘age‘,‘job‘])
print(a5) # {‘name‘: None, ‘age‘: None, ‘job‘: None}
b1 = {‘name‘:‘chu‘,‘age‘:18,‘job‘:‘teacher‘}
# 3.1 一般访问,键不存在时,报错
print(b1[‘name‘]) # chu
# print(b1[‘aaaaa‘]) # KeyError: ‘aaaaa‘
# 3.2 通过get()访问,键不存在时,默认返回None,也可自定义返回值
print(b1.get(‘name‘)) # chu
print(b1.get(‘aaaa‘)) # None
print(b1.get(‘aaaa‘,"此键不存在!")) # 此键不存在!
# 3.3 列出所有的键值对 items()
print(b1.items()) # dict_items([(‘name‘, ‘chu‘), (‘age‘, 18), (‘job‘, ‘teacher‘)])
# 3.4 列出所有的键keys(),值values()
print(b1.keys()) # dict_keys([‘name‘, ‘age‘, ‘job‘])
print(b1.values()) # dict_values([‘chu‘, 18, ‘teacher‘])
# 3.5 len() 字典中有多少个键值对
print(len(b1)) # 3
# 3.6 检测一个“键”是否存在于字典中
print("name" in b1) # True
# 4.1 添加,如果添加的键存在,则会覆盖旧的键,如果不存在,新增键值对
print("------------------------添加,修改,删除------------------------------")
b2 = {‘name‘:‘chu‘,‘age‘:18,‘job‘:‘teacher‘}
b2["address"] = "三元桥一号院"
print(b2) # {‘name‘: ‘chu‘, ‘age‘: 18, ‘job‘: ‘teacher‘, ‘address‘: ‘三元桥一号院‘}
b2["name"] = "baobao"
print(b2) # {‘name‘: ‘baobao‘, ‘age‘: 18, ‘job‘: ‘teacher‘, ‘address‘: ‘三元桥一号院‘}
# 4.2 update() 将新字典中的的所有键值对全部添加到旧的字典中,如果key重复,则直接覆盖
x1 = {‘name‘:‘chu‘,‘age‘:18,‘job‘:‘teacher‘}
x2 = {‘name1‘:‘chu‘,‘age1‘:18,‘job‘:‘teacher01‘}
x1.update(x2)
print(x1) # {‘name‘: ‘chu‘, ‘age‘: 18, ‘job‘: ‘teacher01‘, ‘name1‘: ‘chu‘, ‘age1‘: 18}
print(x2) # {‘name1‘: ‘chu‘, ‘age1‘: 18, ‘job‘: ‘teacher01‘}
# 4.3 del():删除字典中的值 pop(): 删除字典中的值并将值返回 clear():清空字典 popitem():随机删除和返回该键键值对
b3 = {‘name‘: ‘chu‘, ‘age‘: 18, ‘job‘: ‘teacher‘, ‘address‘: ‘三元桥一号院‘}
del(b3[‘name‘])
print(b3) # {‘age‘: 18, ‘job‘: ‘teacher‘, ‘address‘: ‘三元桥一号院‘}
bb = b3.pop(‘age‘)
print(b3) # {‘job‘: ‘teacher‘, ‘address‘: ‘三元桥一号院‘}
print(bb) # 18
b4 = {‘name‘: ‘chu‘, ‘age‘: 18, ‘job‘: ‘teacher‘, ‘address‘: ‘三元桥一号院‘}
print(b4.popitem()) # (‘address‘, ‘三元桥一号院‘)
print(b4.popitem()) # (‘job‘, ‘teacher‘)
print(b4.popitem()) # (‘age‘, 18)
print(b4.popitem()) # (‘name‘, ‘chu‘)
# print(b4.popitem()) # KeyError: ‘popitem(): dictionary is empty‘
# 5.1 序列解包
a,b,c = 10,20,30
a1,b1,c1 = (20,30,40)
(a2,b2,c2) = (40,50,60)
[a3,b3,c3] = [1,2,3]
print(a,b,c) # 10 20 30
print(a1,b1,c1) # 20 30 40
print(a2,b2,c2) # 40 50 60
print(a3,b3,c3) # 1 2 3
如果对值进行操作,x.values()
如果对键值对进行操作,x.items()# 5.2 字典的序列解包时,默认是对键进行操作
# 如果对值进行操作,x.values()
# 如果对键值对进行操作,x.items()
b5 = {‘name‘: ‘chu‘, ‘age‘: 18, ‘job‘: ‘teacher‘, ‘address‘: ‘三元桥一号院‘}
x,y,z,o = b5
print(x,y,z,o) # name age job address
x1,y1,z1,o1 = b5.values()
print(x1,y1,z1,o1) # chu 18 teacher 三元桥一号院
x2,y2,z2,o2 = b5.items()
print(x2,y2,z2,o2) # (‘name‘, ‘chu‘) (‘age‘, 18) (‘job‘, ‘teacher‘) (‘address‘, ‘三元桥一号院‘)
下一篇:java反射
文章标题:Python3-2020-测试开发-8- 字典dict
文章链接:http://soscw.com/index.php/essay/48250.html