定义方式:经过大括号来存数据,经过key:value这种映射关系来定义键值对,每一个键值对经过逗号分隔python
key : 必定是不可变类型code
value:能够是任意类型索引
三种定义方式:ip
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 映射关系取值(可存可取)get
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)it
d1 = {'name':'shen','age':18} print("name" in d1)# >>>True print("shen" in d1)# >>>False
3.len():获取当前字典中键值对的个数class
一、.get():经过key来查找value值,若是找不到,默认返回None,能够经过第二个参数来修改默认返回值date
d1 = {'name':'shen','age':18} # print(d1["sex"])# 直接索引key查找值,找不到则报错 print(d1.get("name")) print(d1.get("sex")) print(d1.get("sex",'male'))
二、keys、values、items:返回全部的key、返回全部的值、返回全部的键值对方法
应用于for in 结合使用d3
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)
三、.pop():指定key进行删除,有返回值是对应的value
d1 = {'name':'shen','age':18} d2 = d1.pop("name") print(d1)# >>>{'age': 18} print(d2)# >>>shen
四、.popitem():随机弹出一个键值对删除,返回值是元组
d1 = {'name':'shen','age':18,'sex':'male'} d3 =d1.popitem() print(d1)# {'name': 'shen', 'age': 18}随机删除后的字典 print(d3)# ('sex', 'male')返回值,元组
五、.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}
六、.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'}
七、.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来取值,故是无序的,是可变类型,能够存多个值