字典
一、数据类型划分:
不可变数据类型:元组、bool(布尔值)、int(整型)、str(字符串) 可哈希
可变数据类型:list(列表)、dict(字典)、set(集合) 不可哈希
二、字典:
字典的key 必须是不可变数据类型 可哈希
value 任意数据类型
字典都是无序的
字典的增删改查
dic1 = {'age':18,'name':'ts','sex':'man'}
1.增
dic1['age'] = 12 #如果之前有age值,则覆盖,如果没有则添加。
dic1.setdefault('age',12) #如果之前有age则不改变,如果没有则添加。
2.删
print(dic1.pop('age',None)) #删除这个key并且有返回值,如果没有这个Key不会报错,并且可以输出指定的返回值。
print(dic1.popitem()) #随机删除,并且有返回值。
dic1.clear() #清空字典。
del dic1 #删除字典。
del dic1['name'] #删除字典中的Key,如果没有则报错,不推荐使用。
3.改
dic1['name'] = 'as' #直接覆盖替换
dic2 = {'name':'as','weight':22}
dic2.update(dic) #更新字典,有的覆盖,没有的添加。
4.查
print(dic1.keys()) #查看键
print(dic1.values()) #查看值
print(dic1.items()) #查看键值对(元组)
for i in dic1:
print(i)
for i in dic1.values():
print(i)
for i in dic1.items(): #元组
print(i)
for i,a in dic1.items(): #字符串
print(i,a)
print(dic1['name']) #如果有则显示值,没有则报错,不推荐。
print(dic1.get('name1','没有这个值')) #如果有显示值,没有不报错,显示返回值,可以设置返回值,推荐。
5.字典嵌套
dic = {
‘name':['alex','wusir','taibai'],
'py9':{
'time':'1213',
'learn_money':19800,
'addr':'CBD',
},
'age':21
}
修改:dic['name'].append('ts')
修改:dic['name'][0] = dic['name'][0].upper()
添加:dic['py9']['hobby'] = 'nv'
6.循环字典
dic = {'a': 1, 'b': 2} for k,v in dic.items(): print(k,v) 结果: a 1 b 2