思考:如果有三个数据,例如:‘Tom’ 男 20 如何进行储存?
答:由于数据而会发生变化,所以用简单的列表下标会发生变化,
思考2:数据顺序发生变化,每个数据的下标会随之发生变化,如何保证数据顺序变化前后能食用同一的标准查找数据?
答:字典,字典里面的数据是以键值对的形式出现的,字典数据和数据顺序没有关系,及字典不支持下标,后期无论数据如何变化,秩序要按照对应键的名字查找数据即可
【1】符号为大括号
【2】数据为键值对的形式出现
【3】各个键值对之间用逗号隔开
# 有效字典
dict1={'name':'TOM','age':20,'gender':'男'}
print(dict1) # {'name': 'TOM', 'age': 20, 'gender': '男'}
# 空字典:两种方法。
dict2={}
dict3=dict()
【1】增
写法:字典序列[key]=值
注意:如果key存在则修改一个key对应的值:如果key不存在则新增此键值
dict1={'name':'TOM','age':20,'gender':'男'}
dict1['name']='lisa'
print(dict1)
# {'name': 'lisa', 'age': 20, 'gender': '男'}
dict1['id']=200
print(dict1)
# {'name': 'lisa', 'age': 20, 'gender': '男', 'id': 200}
注意:字典是可以修改的
【2】删除
del()
1.删除字典
dict1={'name':'TOM','age':20,'gender':'男'}
del(dict1)
print(dict1)
# 报错
2.删除键值对
dict1={'name':'TOM','age':20,'gender':'男'}
del(dict1['name'])
print(dict1)
# {'age': 20, 'gender': '男'}
3.删除不存在的键值对
报错
clear():清空字典
dict1={'name':'TOM','age':20,'gender':'男'}
dict1.clear()
print(dict1)
# {}
【3】修改数据
写法:字典序列[key]=数据
dict1={'name':'TOM','age':20,'gender':'男'}
dict1['id']=200
print(dict1)
# {'name': 'lisa', 'age': 20, 'gender': '男', 'id': 200}
注意:key是原本不存在的,则新增,如果存在,则修改
【4】查找
dict1={'name':'TOM','age':20,'gender':'男'}
print(dict1['name'])
# TOM
print(dict1['idname'])
# 报错
[1] get():
语法:
字典序列.get(key,默认值)
注意:如果当前key不存在则返回第二个参数(默认值),如果省略第二个参数,则返回None
dict1={'name':'TOM','age':20,'gender':'男'}
print(dict1.get('name')) # TOM
print(dict1.get('idname',110)) # 110
print(dict1.get('idname')) #None
**[2] keys()*查找字典中所有key,返回可迭代的对象
dict1={'name':'TOM','age':20,'gender':'男'}
print(dict1.keys()) # dict_keys(['name', 'age', 'gender'])
这里体现了这是一个可以用
for
循环控制遍历的对象
哈哈哈哈哈这咋回事出了个表情包\笑哭
[3] valus():查找字典中所有的value,返回可迭代的对象
dict1={'name':'TOM','age':20,'gender':'男'}
print(dict1.values()) # dict_values(['TOM', 20, '男'])
[4] items():找找字典中所有键值对,返回所有可迭代对象,里面的数据全是元组,元组数据1是字典的key,元组数据2是字典key对应的值
dict1={'name':'TOM','age':20,'gender':'男'}
print(dict1.items())
# dict_items([('name', 'TOM'), ('age', 20), ('gender', '男')])
【1】遍历字典的key
dict1={'name':'TOM','age':20,'gender':'男'}
for key in dict1:
print(key,end=' ') #name age gender
【2】遍历values
dict1={'name':'TOM','age':20,'gender':'男'}
for key in dict1:
print(dict1[key],end=' ')
# TOM 20 男
dict1={'name':'TOM','age':20,'gender':'男'}
for value in dict1.values():
print(value,end=' ') # TOM 20 男
【3】遍历元素:
dict1={'name':'TOM','age':20,'gender':'男'}
for item in dict1.items():
print(item,end=' ')
# ('name', 'TOM') ('age', 20) ('gender', '男')
字典序列.items():返回可迭代对象,内部是元组,元组是两个数据
数据1是key,数据2是value
dict1={'name':'TOM','age':20,'gender':'男'}
for key,value in dict1.items():
print(f'{key}={value}',end=' ')
# name=TOM age=20 gender=男