字典类型内置方法
一、字典(dict)
存多个值,但每一个值都有一个key与之对应。例如存的值有姓名:jiayi、年龄:18、身高:173
1.2 定义方式
在{}内用逗号分隔多个元素,每个元素都是key:value的形式,value可以是任意数据类型,key通常是字符串类型,但是key必须为不可变类型。
dic ={'name':jiayi,'age':20,'height':173}
print(f"dic:{dic}")
--------------------------------------------------------
dic:{'name': 'jiayi', 'age': 20, 'height': 173}
1.3 内置方法
1.3.1优先掌握
1.按key存取值
dic ={'name':'jiayi','age':20,'height':173}
print(f"dic['name']:{dic['name']}") #可取
dic['age'] = 18 #可修改
print(f"dic:{dic})
---------------------------------------------------------
dic['name']:jiayi
dic:{'name': 'jiayi', 'age': 18, 'height': 173}
2.长度
dic ={'name':'jiayi','age':20,'height':173}
print(f"len(dic):{len(dic)}")
-----------------------------------------------------
len(dic):3
4.in和not in
dic ={'name':'jiayi','age':20,'height':173}
print(f"name in dic:{'name'in dic}")
print(f"name not in dic:{'name' not in dic}")
---------------------------------------------------------
name in dic:False
name not in dic:True
5.for循环
#dic是无序的,但是python3采用了底层优化算法,所以看起来是有序的,但是在python2中的字典是无序的
dic ={'name':'jiayi','age':20,'height':173}
for i in dic.items: #items可以换成keys(),values()
print(i)
------------------------------------------------------
('name', 'jiayi')
('age', 20)
('height', 173)
7.删除:del()/pop()/popitem
(1)del()
dic ={'name':'jiayi','age':20,'height':173}
del dic['name']
print(f"dic.get('a'):{dic.get('name')}")
---------------------------------------------------------
dic.get('a'):None
(2)pop()
dic ={'name':'jiayi','age':20,'height':173}
dic.pop('name') #指定元素删除
print(f"dic.pop('age'):{dic.pop('age')}")
print(f"dic.get('age'):{dic.get('age')}")
---------------------------------------------------------
dic.pop('age'):20
dic.get('age'):None
(3)popitem
dic ={'name':'jiayi','age':20,'height':173}
print(f"dic.popitem('age'):{dic.popitem()}") #随机返回并删除字典中的一对键和值(一般删除末尾对)
-----------------------------------------------------------
dic.popitem('age'):('height', 173)
8.键keys()、值values()、键值对items()
dic ={'name':'jiayi','age':20,'height':173}
print(f"dic.keys():{dic.keys()}")
print(f"dic.values():{dic.values()}")
print(f"dic.items():{dic.items()}") #一般和解压缩一起使用
------------------------------------------------------------
dic.keys():dict_keys(['name', 'age', 'height'])
dic.values():dict_values(['jiayi', 20, 173])
dic.items():dict_items([('name', 'jiayi'), ('age', 20), ('height', 173)])
1.3.需要掌握
1.get()
dic ={'name':'jiayi','age':20,'height':173}
print(f"dic.get():{dic.get('name')}") #如果有就返回真的值
print(f"dic.get():{dic.get('hobby')}")
print(f"dic.get():{dic.get('hobby','nick')}") #如果有就返回真的值,也可以设置返回的值
----------------------------------------------------
dic.get():jiayi
dic.get():None
dic.get():nick
2.update()
dic ={'name':'jiayi','age':20,'height':173}
dic2 = {'hobby':'run'}
dic.update(dic2)
print(f"dic.get():{dic}")
-------------------------------------------------------
dic.get():{'name': 'jiayi', 'age': 20, 'height': 173, 'hobby': 'run'}
3.fromkeys()
dic=dict.fromkeys(['name','age','height'],None) #fromkeys由dict,key来自于容器,值来自于后面定义的value
print(f"dic:{dic}")
---------------------------------------------------------
dic:{'name': None, 'age': None, 'height': None}
4.setdefault()
# 有指定key不会改变值;无指定key则改变值
dic ={'name':'jiayi','age':20,'height':173}
print(f"dic.setdefault(name):{dic.setdefault('name')}")
print(f"dic:{dic}")
print(f"dic.setdefault(hobby):{dic.setdefault('hobby','run')}")
print(f"dic:{dic}")
---------------------------------------------------------
dic.setdefault(name):jiayi
dic:{'name': 'jiayi', 'age': 20, 'height': 173}
dic.setdefault(hobby):run
dic:{'name': 'jiayi', 'age': 20, 'height': 173, 'hobby': 'run'}
1.4 有一个值还是多个值
多个值
1.5 有序(索引)or无序(索引)
无序
1.6 可变or不可变
可变
dic ={'name':'jiayi','age':20,'height':173}
print(f"dic:{id(dic)}")
dic['name'] = 'yanjiayi'
print(f"dic:{id(dic)}")
-------------------------------------------------------------
dic:2213073478280
dic:2213073478280