python中的字典相关知识
-
数据类型的划分:
- 可变数据类型:元组,bool,int,str 可哈希
- 不可变类型:list,dict,set 不可哈希
- 字典的key必须是不可变类型,value是任意数据类型
-
dict的优点:
- 二分查找法(每次查找找一半)
- 存储大量的关系型数据
-
dict的特点:
- 3.5之前(包括3.5)的版本是无序的
-
字典的相关操作
dic1 = {'age':18,'name':'xiaosheng','sex':'male'}
dic1['high'] = 165 # 添加
dic1['age'] = 16 # 若键名存在则修改值
dic1.setdefault('weight',115) # 有键值对的话,不做任何操作,如果没有该键值对,则添加
print(dic1) # {'age': 16, 'name': 'xiaosheng', 'sex': 'male', 'high': 165, 'weight': 115}
dic1 = {'age':18,'name':'xiaosheng','sex':'male'}
a = dic1.pop('age') # 按键删除,有返回值
print(dic1.pop('sheng',None)) # 可以设置返回值
print(a) # 18
print(dic1) # {'name': 'xiaosheng', 'sex': 'male'}
dic1.popitem() # 此处3.5之前都是随机删除,但是3.6以后的版本因为字典有序之后,所以就变为删除最后一个了,返回的是元组,删除的是键值
del dict['name'] # 删除键值对,但是如果删除不存在的键值对的时候,就会报错
del dic1 # 删除整个字典
dic1.clear() # 清空整个字典
dic1 = {'age':18,'name':'xiaosheng','sex':'male','wf':'wfe','ew':'ewf'}
dic2 = {'name':'yehuaner','age':18,'sex':'female'}
dic2.update(dic1) # 把dic1里面的内容都添加到dic2里面,如果dic1里面的键和dic2里面的键重复,则dic1里面的值覆盖dic2的值
print(dic1) #{'age': 18, 'name': 'xiaosheng', 'sex': 'male', 'wf': 'wfe', 'ew': 'ewf'}
print(dic2) #{'name': 'xiaosheng', 'age': 18, 'sex': 'male', 'wf': 'wfe', 'ew': 'ewf'}