dict字典
{'name':'holle'}
字典存储大量关联型数据,可迭代的,最多只有200个键。查询数据速度非常快,符合二分查找(有100个数比如找75会先找到50然后判断,所以2^7次方7次即可找到)字典的key是唯一不可变的。
在python中,可迭代对象包括列表、元组、字典、字符串;我们常结合for循环使用。所以这里的迭代有一定的意思就是能够放在 for i in 后面的元素了。我们其实也可以把这种类型的元素认为是一种容器,最粗浅的理解,就是可以存放很多类型数据的盒子。
3.6以前的版本字典是无序的。之后也是无序但显示有序
- key:不可变的数据类型(可哈希) 比如:str bool tuple int 类型
- value:可以是任一数据类型;
一、添加元素:
dic = {"name": "jin", "age": 18}
dic['sex'] = 'man' #添加键-值对
dit1 = dic.fromkeys('abcd', 'hello')
dit2 = dic.fromkeys(['a', 'b', 'c'], 'hello')
dit1['e']= 'world'
dit2['a'].append('wold')
二、删除元素:
dic.pop('age') #删除某个键-值对
dic.clear() #清空字典
del dic #在内存中彻底删除字典
del dic('age') #也可以按key删除,找不到报错
dic.popitem() #随机删除,返回一个元组 (key, value)
三、修改元素:
dict1 = {'name': 'jin', 'age': 18, 'sex': 'male'}
dict2 = {'name': 'alex', 'weight': 75}
# 将dict1的内容覆盖更新到dict2中,dict1中的内容不变
dict2.update(dict1)
dict1['age']= 19
四、查询元素:
#dic['name'] 直接按key值查 找不到报错
#get() dic.get('name')如果有这个键返回对应的value值,没有这个键会返回None -------用这个
dic.get('name','没有此key')也可以设置返回值
#dic.setdefault(key) 有返回value 没有返回None
#for 循环查找 单循环只输出 key的值
dic = {'qwe': 233, 'aaa': 999}
for i in dic: #输出key 的值
print(i)
for k, v in dic.items(): #输出key 和 value
print(k, v)
for i in dic.keys():
print(i) #获取到字典中的每一个键
for i in dic:
print(i) #获取到字典中的每一个键
for i in dic.values():
print(i) #获取到字典中的每一个值
for i in dic.items():
print(i) #获取到字典中的所有键值对
#keys() 返回列表所有的键值key在一个容器中(高仿列表),可以使用for循环遍历,或者list()类型转换变为一个列表。
dict2 = {'name': 'alex', 'weight': 75}
print(dict2.keys()) 输出:dict_keys(['name', 'weight'])
for i in dict2.keys():
print(i) 输出:name weight 类型为字典中的原类型
五、解构和重构
a,b,c= (1,2,5)
a,b,c= [1,2,5]
a,b,c= '125'
a,b,c= {'1':10, '2':20, '3':30}
print(b,c)
dic = {"name": "jin", "age": 18}
k,v= dic.keys(), dic.values() #解构
nd= dict(zip(k,v)) #重构