字典
一:字典使用
# 定义字典
dic={}
dic1={'color':'green','points':5}
1.访问字典中的值
## 根据键获取 -- dic1[键]
print(dic1['color'])
green
2. 添加键值对
# 根据键添加 -dic[需添加的键值对的键]=值
dic1["xixi"]=1
dic1["gofy"]=2
print(dic1)
{'color': 'green', 'points': 5, 'xixi': 1, 'gofy': 2}
3.修改字典中的值
# 根据键修改 -dic[需修改的键值对的键]=修改后的值
dic1["xixi"]="good"
print(dic1)
{'color': 'green', 'points': 5, 'xixi': 'good', 'gofy': 2}
4.删除键值对 – del语句永久删除(同列表)
del dic1["gofy"]
print(dic1)
{'color': 'green', 'points': 5, 'xixi': 'good'}
5.使用get()来访问值
value=dic1.get('xixi')
print(value)
good
value=dic1.get('haha')
print(value)
# 还可以通过设置参数,输出指定信息
value=dic1.get('haha','此键值对不存在')
print(value)
None
此键值对不存在
# 用字典[键]的形式获取对应键的值会报错
dic1['hahh']
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
Cell In[14], line 1
----> 1 dic1['hahh']
KeyError: 'hahh'
二:字典的统计、合并、清空操作
1.统计键值对数量 – len()函数
print(len(dic1))
print(dic1)
3
{'color': 'green', 'points': 5, 'xixi': 'good'}
2.合并字典 – update()方法
dic2={"gofy":1}
dic1.update(dic2)
print(dic1)
{'color': 'green', 'points': 5, 'xixi': 'good', 'gofy': 1}
dic2['xiha']=2 # copy了一下原来字典里的键值对
print(dic1)
{'color': 'green', 'points': 5, 'xixi': 'good', 'gofy': 1}
3.清空字典 – clear()方法
dic2.clear()
print(dic2)
{}
三:字典的遍历
1.遍历所有的键值对 – items()方法
for key,value in dic1.items():
print(f"key为{key}",end=" ")
print(f'value为{value}')
key为color value为green
key为points value为5
key为xixi value为good
key为gofy value为1
2.遍历所有的键 – keys()方法
for k in dic1.keys():
print(f"key为{key}")
key为gofy
key为gofy
key为gofy
key为gofy
for k in dic1.keys():
print(f"key为{k}")
key为color
key为points
key为xixi
key为gofy
3.遍历所有的值 – values()方法
for v in dic1.values():
print(f"value为{v}")
value为green
value为5
value为good
value为1
4.按特定的顺序遍历字典中的所有键 – sorted()方法
# sort()函数 永久排序 -- sorted()方法临时排序
for k in sorted(dic1.keys()):
print(f"key为{k}")
key为color
key为gofy
key为points
key为xixi
四:嵌套–字典和列表的组合应用
应用场景
1.字典列表
2.在字典中存储列表 - 一个键关联到多个值
每当需要在字典中将一个键关联到多个值时,都可以在字典中嵌套一个列表
3.在字典中存储字典
4.练习
xixi={"name":'xixi','gender':'f','old':18}
gofy={"name":'gofy','gender':'m','old':18}
haha={"name":'haha','gender':'f','old':18}
list=[xixi,gofy,haha]
for user in list:
print(user)
{'name': 'xixi', 'gender': 'f', 'old': 18}
{'name': 'gofy', 'gender': 'm', 'old': 18}
{'name': 'haha', 'gender': 'f', 'old': 18}
favorite_places={'xixi':['xian','guangzhou','shanghai'],'gofy':['xian','guangzhou']}
for k in favorite_places.keys():
for v in favorite_places.get(k):
print(f'{k}喜欢{v}',end=' ')
print()
for k,v in favorite_places.items():
print(f'{k}喜欢{v}',end=' ')
print()
xixi喜欢xian xixi喜欢guangzhou xixi喜欢shanghai
gofy喜欢xian gofy喜欢guangzhou
xixi喜欢['xian', 'guangzhou', 'shanghai']
gofy喜欢['xian', 'guangzhou']
#xian={'xian':{'country':'china','population ':'1000mil','fact':1}}
#guangzhou={'guangzhou':{'country':'china','population ':'1500mil','fact':2}}
cities={'xian':
{'country':'china','population':'1000mil','fact':'a'},
'guangzhou':
{'country':'china','population':'1500mil','fact':'b'}}
print(cities)
# for k in cities.keys():
# for kk in cities.get(k).keys():
# for v in cities.get(k).get(kk):
# print(f'{k}市的{kk}为{v}',end=' ')
# print()
for city , value in cities.items():
country=value.get('country')
population=value.get('population')
fact=value.get('fact')
print(f'{city}市的contry为{country},population为{population},fact为{fact}')
{'xian': {'country': 'china', 'population': '1000mil', 'fact': 'a'}, 'guangzhou': {'country': 'china', 'population': '1500mil', 'fact': 'b'}}
xian市的contry为china,population为1000mil,fact为a
guangzhou市的contry为china,population为1500mil,fact为b