(三)字典
目录
3.1字典
不可变数据类型:int bool str 元组
可变数据类型:list dict set
字典是一系列键-值对。每一个键都与一个值相关,可以使用键访问与之相关的值。
字典的key是不可变数据类型,value是随意的
字典用放在花括号{}中的一系列键-值表示,如
dict1 = {'name':'a','age':16,'sex':'male'}
3.2字典的操作
a.访问字典的值
dict1 = {'name':'a','age':'16','sex':'male'}
print(dict1['name']) #a
b.添加 setdefault
dict1 = {'name':'a','age':'16','sex':'male'}
dict1['hight'] = 123 #没有键值对,添加
dict1['age'] = 13 #有键值,值覆盖
//有键值对则不进行操作,没有则添加(注意是逗号)
ret = dict1.setdefault('name','b')
print(dict1)
print(ret)
//{'name':'a','age':'16','sex':'male'}
//a
dict1.setdefault('weight',132)
print(dict1)
//{'name':'a','age':'16','sex':'male','weight':132}
dict1.setdefault('weigth') #默认值为None
print(dict1)
{'name': 'b', 'heigh': 168, 'weigth': None}
setdefault('key',添加类型).类型方法
dict = {'a': 1,'b' : 2}
dict.setdefault('c',[]).append(3)
dict.setdefault('c',[]).append(4)
print(dict)
//{'a': 1, 'b': 2, 'c': [3,4]}
dict = {'a': [1],'b' : 2}
dict.setdefault('a',[]).append('3')
print(dict)
//{'a': [1, '3'], 'b': 2}
defaultdict
from collections import defaultdict
dict1 =defaultdict(list)
dict1['c'].append(3)
print(dict1)
//defaultdict(<class 'list'>, {'c': [3]})
c.删除
#pop()
print(dict1.pop('age')) //有返回值,按键值删除
print(dict1.pop('aa','没有这个键')) //可设置返回值,没有aa就会返回‘没有这个键’
print(dict1)
#popitem()
dict1.popitem() //随机删除,现在版本有序,删除最后一个
//返回一个元组,删除的是键值
print(dict1)
#del
del dict1['name']
print(dict1)
#clear()
dict1.clear() //清空
print(dict1)
d.改update
#改 update 覆盖添加
dict1['age'] = 13 #直接改
//update 有则修改,无则增加
dict2 = {'name':'b','heigh':168}
dict2.update({'age':15}) //更新dict2 updata({'age':15})
print(dict2)
dict2.update({'name':'a'})
print(dict2)
//{'name': 'b', 'heigh': 168, 'age': 15}
//{'name': 'a', 'heigh': 168, 'age': 15}
e.查(遍历)
#查
print(dict1.keys())
print(dict1.values())
print(dict1.items()) #dict_items([(2, 3), (1, 2)]) 元组
#i接收键 j接收值
for i,j in dict1.items():
print(i,j)
print(dict1['name'])
print(dict1.get('name1','没有这个键')) #get默认返回None
#print(dict1['name1'])#报错
3.3嵌套
a.字典列表
dict0 = {'name':'dict0'}
dict1 = {'name':'dict1'}
dict2 = {'name':'dict3'}
dict = [dict0,dict1,dict2]
for i in dict:
print(i)
#
{'name': 'dict0'}
{'name': 'dict1'}
{'name': 'dict3'}
b.在字典里存储列表,字典
dic = {'name':['a','b','c'],
'py':{'time':'0411',
'add':'asd'
},
'age':'22'
}
dic['name'].append('d')
dic['name'][1] = dic['name'][1].upper()
print(dic)
dic['py']['female'] = 4
print(dic)