5、字典类型

别来无恙 提交于 2020-04-07 11:14:52

字典类型 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来取值,故是无序的,是可变类型,可以存多个值

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!