Python–字典(dict)
字典里的数据是以键值对形式出现,字典数据和数据顺序没有关系,即字典不支持下标,后期无论数据如何变化,只需要安装对应的键的名字查找数据即可。
字典的数据类型为可变类型
字典语法
字典特点:
1.符号为大括号
2.数据为键值对形式出现
3.各个键值对之间用逗号隔开
# 创建有数据字典
dict = {"name":"Tom","age":20,"gender":"男"}
# 创建空字典
dict1 = {} # 方法一
dict2 = dict() # 方法二
字典常见操作
键值对新增/修改
写法:字典序列[key] = 值
注意:如果key存在则修改这个key的值,如果key值不存在则新增此键值对
dict = {"name":"Tom","age":20,"gender":"男"}
dict["id"] = 1 # 新增键值对id:1
dict["name"] = "小明" # 修改name的值为小明
键值删除
del()/del
del():删除字典
del:字典中指定键值对
语法
del(字典名称)
del 字典序列[key]
举例
dict1= {"name":"Tom","age":20,"gender":"男"}
del(dict1) # 删除字典
print(dict1) # 字典不存在,保存
dict1= {"name":"Tom","age":20,"gender":"男"}
del dict1["name"] # 删除指定键值对
print(dict1) # {'age': 20, 'gender': '男'}
clear()函数
清除字典数据
语法
字典序列.clear()
清空字典
dict1= {"name":"Tom","age":20,"gender":"男"}
dict1.clear()
print(dict1) # {}
键值对查找
key值查找
如果当前查找的key存在,则返回对应的值,否则报错
dict1= {"name":"Tom","age":20,"gender":"男"}
print(dict1["name"]) # Tom
print(dict1["id"]) # 报错
get()函数
语法
字典序列.get(key,默认值)
注意:如果当前查找的key不存在,则返回第二个参数(默认值),如果省略第二个参数,则返回None
ict1= {"name":"Tom","age":20,"gender":"男"}
print(dict1.get("name","hello")) # Tom
print(dict1.get("addr","北京")) # 北京 addr不存在,则返回第二个默认值:北京
print(dict1.get("addr")) # None addr不存在,没有设置默认值,返回:None
keys()函数
查找字典中所有的key,返回的是可迭代对象
keys函数的返回值是元组嵌套列表,这个列表可以使用for循环遍历
语法
字典序列.key()
举例
dict1= {"name":"Tom","age":20,"gender":"男"}
print(dict1.keys()) # dict_keys(['name', 'age', 'gender'])
values()函数
查找到的是字典中所有的valus值,是可迭代对象
语法
字典序列.values()
举例
dict1= {"name":"Tom","age":20,"gender":"男"}
print(dict1.values()) # dict_values(['Tom', 20, '男'])
items()函数
查找字典中所有的键值对,返回可迭代对象,里边的数据是元组,元组的数据1是字典的key,数据2是字典key所对应的值
语法
字典序列.items()
举例
dict1= {"name":"Tom","age":20,"gender":"男"}
print(dict1.items()) # dict_items([('name', 'Tom'), ('age', 20), ('gender', '男')])
字典的循环遍历
遍历字典之key
dict1= {"name":"Tom","age":20,"gender":"男"}
# print(dict1.items())
for key in dict1.keys():
print(key,end=" ")
# 遍历结果:
name age gender
遍历字典之value
dict1= {"name":"Tom","age":20,"gender":"男"}
for value in dict1.values():
print(value,end=" ")
# 遍历结果:
Tom 20 男
遍历字典之K/V
dict1= {"name":"Tom","age":20,"gender":"男"}
for kv in dict1.items():
print(kv,end=" ")
# 输出结果:
('name', 'Tom') ('age', 20) ('gender', '男')
遍历字典之K/V(拆包)
items()函数的返回结果是元组,所以for循环可以设置俩个临时变量
dict1= {"name":"Tom","age":20,"gender":"男"}
for key,value in dict1.items():
print(key,value)
print(key,"=",value) /
.print(f'{key}={value}')
# 输出结果:
name Tom
age 20
gender 男
或者
name = Tom
age = 20
gender = 男