字典类型 dict
定义方式:通过大括号来存数据,通过key:value这种映射关系来定义键值对,每个键值对通过逗号分隔
key : 一定是不可变类型
value:可以是任意类型
三种定义方式:
d1 = {"name":"shen", "age":18}# ***** d2 = dict(name = "shen", age = 18,'sex' = 'male')# ***** l1 = ['name',"age"] l2 = ['egon',18] z1 = zip(l1,l2)
常用方法:
1.按照key:value 映射关系取值(可存可取)
d1 = {'name':'shen','age':18} print(d1['age'])# 按照key查找value d1['age'] = 20# 改值 print(d1) d1['sex'] = 'male'# 增加键值对 print(d1)
2.成员运算in ,not in (默认判断key)
d1 = {'name':'shen','age':18} print("name" in d1)# >>>True print("shen" in d1)# >>>False
3.len():获取当前字典中键值对的个数
内置方法
1、.get():通过key来查找value值,如果找不到,默认返回None,可以通过第二个参数来修改默认返回值
d1 = {'name':'shen','age':18} # print(d1["sex"])# 直接索引key查找值,找不到则报错 print(d1.get("name")) print(d1.get("sex")) print(d1.get("sex",'male'))
2、keys、values、items:返回所有的key、返回所有的值、返回所有的键值对
应用于for in 结合使用
d1 = {'name':'shen','age':18} print(d1.keys())# 返回所有的key,返回列表 print(d1.values())# 返回所有的值,返回列表 print(d1.items())# 返回所有的键值对,返回值是列表套元组,每一个键值对都是元组
for ke in d1.keys(): print(ke) for val in d1.values(): print(val) for item in d1.items(): print(item)# >>>('name', 'shen') # >>>('age', 18)
3、.pop():指定key进行删除,有返回值是对应的value
d1 = {'name':'shen','age':18} d2 = d1.pop("name") print(d1)# >>>{'age': 18} print(d2)# >>>shen
4、.popitem():随机弹出一个键值对删除,返回值是元组
d1 = {'name':'shen','age':18,'sex':'male'} d3 =d1.popitem() print(d1)# {'name': 'shen', 'age': 18}随机删除后的字典 print(d3)# ('sex', 'male')返回值,元组
5、.update():用新字典代替旧字典,有则修改,无则增加
d1 = {'name':'shen','age':18,'sex':'male'} d1.update({'name':'wang','sex':'female'}) # 返回是None print(d1)# >>>{'name': 'wang', 'age': 18, 'sex': 'female'} d1.update({"height":180}) print(d1) # >>>{'name': 'wang', 'age': 18, 'sex': 'female', 'height': 180}
6、.fromkeys():生产一个新字典, 第一个参数(列表),它会以第一个参数中各个元素为key,以第二个参数为值,组成一个新字典值全部相同
d1 = {'name':'shen','age':18,'sex':'male'} d2 =d1.fromkeys([1,2],'shen') print(d1)# >>>{'name': 'shen', 'age': 18, 'sex': 'male'} print(d2)# >>>{1: 'shen', 2: 'shen'}
7、.setdefault():有返回值,有则返回查找的key对应的value,无则添加键值对,默认返回值是None,可以修改
d1 = {'name':'shen','age':18,'sex':'male'} d2 = d1.setdefault('name',123) d3 = d1.setdefault('mmm',1) print(d2)# >>>shen print(d3)# >>>1 print(d1)# >>>{'name': 'shen', 'age': 18, 'sex': 'male', 'mmm': 1}
不能通过索引取值,只能通过key来取值,故是无序的,是可变类型,可以存多个值
来源:https://www.cnblogs.com/Mr-shen/p/11812480.html