字典基本使用
语法
{键:值1,键:值2,键n:值n}
键只能是不可变类型 不能使用 列表 字典 集合
value 任意数据类型
注意事项
键的名字不能重复 否则 后面会把前面的覆盖掉
键值对 一定要 , 号隔开
键 值 如果是 字符串 一般用 ‘’ 隔开
person = {'name':'zhangsan',
'age':18,
(1,2,3):666,
666:None,
'other':[1,2,3,4,5],
'data':{'name':'zhang','age':18},
# [1,2,3,4]:666 #报错 不能是可变类型
# {'name':'hh','age':14}
}
print(person) #{'name': 'zhangsan', 'age': 18, (1, 2, 3): 666, 666: None, 'other': [1, 2, 3, 4, 5], 'data': {'name': 'zhang', 'age': 18}}
字典的查询
#列表 根据下标或者索引查找
#字典 根据键 查找
#字典不支持 切片
person = {'name':'刘德华','age':45,'sex':'男'}
print(person['name'])#刘德华
# print(person['height'])#键不存在立马报错
print(person.get('name')) #刘德华 获取
print(person.get('name','age')) #刘德华 最多两个 返回第一个键的内容
print(person.get('name','张学友')) #刘德华 返回第一个键
x= 'age'
print(person[x]) #45
print(person.get(x)) #45
增
不存在 就增加 存在就是修改
person = {'name':'刘德华','age':45,'sex':'男'}
person['addr']='中国香港'
print(person) #不存在 就增加 存在就是修改 {'name': '华仔', 'age': 45, 'sex': '男', 'addr': '中国香港'}
删
pop popitem del clear remove
# 字典.pop(键) 删除对应的键
x= person.pop('addr') # 删除 key addr 对应的 元素 赋值给x
print(x) #中国香港
print(person)#{'name': '华仔', 'age': 45, 'sex': '男'}
#字典.popitem() 删除最后一个键
res = person.popitem()
print(res) #删除最后一个键值对 结果是元组类型
print(person) #{'name': '华仔', 'age': 45}
#del 字典[键] 删除对应的键
del person['age'] #删除 键为age的键值对
print(person) #{'name': '华仔'}
#字典.clear() 删除整个字典
person.clear() #删除整个字典
print(person) #{}
#字典.remove(元素)
#直接删除元素
改
存在 就是修改
person = {'name':'刘德华','age':45,'sex':'男'}
person['name'] = '华仔'
print(person) #{'name': '华仔', 'age': 45, 'sex': '男'} #存在 就是修改
拼接
update
#字符串拼接
str1= 'hello'
str2= 'world'
print(str1+str2)#helloworld
#列表拼接
list1=['zhangsan','lisi','wangwu']
list2=['qi','ba','jiu','shi']
# print(list1+list2)#['zhangsan', 'lisi', 'wangwu', 'qi', 'ba', 'jiu', 'shi']
list1.extend(list2) #['zhangsan', 'lisi', 'wangwu', 'qi', 'ba', 'jiu', 'shi']
print(list1)
#元组拼接
tuple1 = ('zhangsan','lisi','wangwu')
tuple2 = ('qi','ba','jiu','shi')
print(tuple1+tuple2)#('zhangsan', 'lisi', 'wangwu', 'qi', 'ba', 'jiu', 'shi')
#字典拼接
person1 = {'name':'刘德华',
'age':45,
'sex':'男'
}
person2 = {'name2':'刘嘉玲',
'age2':43,
'sex2':'女'
}
# print(person1+person2) #报错
person1.update(person2) #{'name': '刘德华', 'age': 45, 'sex': '男', 'name2': '刘嘉玲', 'age2': 43, 'sex2': '女'}
print(person1) #合并过程中 如果已经存在 后面的 覆盖前面的
person2.update(person1)
print(person2)
字典的遍历
#第一种方法
person1 = {'name':'刘德华','age':45,'sex':'男'}
for x in person1:
print(x,':',person1[x]) #键:值
#第二种方法 获取键
print(person1.key())
for x in person1.key():
print(x,':',person1[x])
#第三种方法 获取字典里的所有值 不能以值取键
print(person1.value())
for x in person1.value()
print(x)
#第四种方法 同时遍历键和值
print(person1.item())
#列表 元素是 元组
x,y = (10,20)
print(x,y) #从元组中取出对应的值
for key,value in person1.item():
print(key,':',value,sep='')
字典的推导式(生成式)
res = {'a':3,'b':2,'c':3,'d':1}
new_res ={}
for x,y in res.items():
new_res[y] = x
print(new_res)
#推导式
new_res = {y:x for x,y in res.items()}
print(new_res)