目录
[一. 创建与删除](#一. 创建与删除)
[二. 访问字典](#二. 访问字典)
[三. 遍历字典](#三. 遍历字典)
[四. 添加、修改、删除字典元素](#四. 添加、修改、删除字典元素)
[五. 字典推导式](#五. 字典推导式)
字典是无序的、可变的,保存的内容是以"键-值"对的形式存储。其中,键是唯一的,而值可以有多个。
字典的操作函数
- len(字典名):返回字典长度(键值对个数)
- min(字典名):返回键的最小值
- max(字典名):返回键的最大值
- dict( ):生成空字典
- 字典名.keys( ):返回所有键的信息
- 字典名.values( ):返回所有值的信息
- 字典名.items( ):返回所有键值对
- 字典名.get(key, default):键存在,则返回相应值;键不存在,返回default的内容
- 字典名.pop(key, default):键存在,则返回相应值,并删除键值对;键不存在,则返回default的内容
- 字典名.popitem( ):随机取出一个键值对,以元组形式返回,同时将该键值对再字典中删除
- 字典名.clear( ):删除所有键值对,形成空字典
- dict.fromkeys(列表名):创建有键无值字典(列表元素转化为键)
python
zidian = {"键1":"值1","键2":"值2","键3":"值3","键4":"值4"}
print(type(zidian))
# <class 'dict'>
一. 创建与删除
(一)直接创建
字典名 = dict( )
python
diction = dict(一梦='水瓶座',冷毅毅='射手座',香凝='双鱼座',带蓝='双子座')
print(diction)
# {'一梦': '水瓶座', '冷毅毅': '射手座', '香凝': '双鱼座', '带蓝': '双子座'}
(二)映射函数创建字典
字典名 = dict(zip(列表1, 列表2))
python
name = ["一梦","冷毅毅","香凝","黛蓝"]
sign = ["水瓶座","射手座","双鱼座","双子座"]
for i in zip(name,sign):
print(i)
diction = dict(zip(name,sign))
print(diction)
# ('一梦', '水瓶座')
# ('冷毅毅', '射手座')
# ('香凝', '双鱼座')
# ('黛蓝', '双子座')
# {'一梦': '水瓶座', '冷毅毅': '射手座', '香凝': '双鱼座', '黛蓝': '双子座'}
python
name = ["一梦","冷毅毅","香凝","黛蓝"]
sign = [[1,2,3],'四五六',(7,8,9),10]
diction = dict(zip(name,sign))
print(diction)
# {'一梦': [1, 2, 3], '冷毅毅': '四五六', '香凝': (7, 8, 9), '黛蓝': 10}
python
name = [10,(7,8,9),'四五六',[1,2,3]]
sign = [[1,2,3],'四五六',(7,8,9),10]
try:
diction = dict(zip(name,sign))
except TypeError:
print("列表不能作为键!!!")
# 列表不能作为键!!!
(三)创建有键无值字典
字典名 = dict.formkeys(列表名)
python
name_list = ["一梦","冷毅毅","香凝","黛蓝"]
diction = dict.fromkeys(name_list)
print(diction)
# {'一梦': None, '冷毅毅': None, '香凝': None, '黛蓝': None}
二. 访问字典
字典名'键名'
python
diction = dict(一梦=['水瓶座',24],冷毅毅=('射手座',18),香凝='双鱼座',带蓝=18)
print(diction['一梦'])
# ['水瓶座', 24]
字典名.get('键','键不存在时执行的语句')
python
diction = dict(一梦=['水瓶座',24],冷毅毅=(18,'射手座'),香凝='双鱼座',带蓝=18)
print(diction.get("带蓝","字典中不存在此键"))
print(diction.get("依依","字典中不存在此键"))
# 18
# 字典中不存在此键
三. 遍历字典
(一)遍历键值对
字典名.items( )
python
diction = dict(一梦=['水瓶座',24],冷毅毅=('射手座',18),香凝='双鱼座',带蓝=18)
for i in diction.items():
print(i)
# ('一梦', ['水瓶座', 24])
# ('冷毅毅', ('射手座', 18))
# ('香凝', '双鱼座')
# ('带蓝', 18)
(二)遍历键或值
python
diction = dict(一梦=['水瓶座',24],冷毅毅=('射手座',18),香凝='双鱼座',带蓝=18)
for i,j in diction.items():
print(i,"的值为:",j)
# 一梦 的值为: ['水瓶座', 24]
# 冷毅毅 的值为: ('射手座', 18)
# 香凝 的值为: 双鱼座
# 带蓝 的值为: 18
字典名.keys( ):获取字典所有的键
字典名.values( ):获取字典所有的值
python
diction = dict(一梦=['水瓶座',24],冷毅毅=('射手座',18),香凝='双鱼座',带蓝=18)
for i in diction.keys():
print(i)
for i in diction.values():
print(i)
# 一梦
# 冷毅毅
# 香凝
# 带蓝
# ['水瓶座', 24]
# ('射手座', 18)
# 双鱼座
# 18
四. 添加、修改、删除字典元素
(一)添加和修改
字典名键名 = 值
- 若字典中没有该键,则在字典一系列键值对后面创建新键值对
- 若字典中存在该键,则修改该键对应的值
python
# 添加
diction = dict(一梦=['水瓶座',24],冷毅毅=('射手座',18),香凝='双鱼座',带蓝=18)
diction["碧琪"] = "巨蟹座"
print(diction)
# {'一梦': ['水瓶座', 24], '冷毅毅': ('射手座', 18), '香凝': '双鱼座', '带蓝': 18, '碧琪': '巨蟹座'}
python
# 修改
diction = dict(一梦=['水瓶座',24],冷毅毅=('射手座',18),香凝='双鱼座',带蓝=18)
diction["碧琪"] = "魔羯座"
print(diction)
# {'一梦': ['水瓶座', 24], '冷毅毅': ('射手座', 18), '香凝': '双鱼座', '带蓝': 18, '碧琪': '魔羯座'}
(二)判断并删除
字典名.getkey, default
- 若键名key存在,则返回相应的值
- 若键名key不存在,则返回default的内容
python
diction = dict(一梦=['水瓶座',24],冷毅毅=('射手座',18),香凝='双鱼座',带蓝=18)
print(diction.get("一梦"))
print(diction.get("二梦"))
print(diction.get("二梦","没有'二梦'键值对"))
# ['水瓶座', 24]
# None
# 没有'二梦'键值对
del 字典名键名
python
diction = dict(一梦=['水瓶座',24],冷毅毅=('射手座',18),香凝='双鱼座',带蓝=18)
print(diction.get("一梦"))
del diction["一梦"]
print(diction.get("一梦","没有'一梦'键值对"))
# ['水瓶座', 24]
# 没有'一梦'键值对
字典名.pop(key, default)
- 若键key存在,则返回相应值,并删除键值对
- 若键key不存在,则返回default的内容
python
diction = dict(一梦=['水瓶座',24],冷毅毅=('射手座',18),香凝='双鱼座',带蓝=18)
print(diction.pop("香凝"))
print(diction.pop("香凝","没有'香凝'键值对"))
# 双鱼座
# 没有'香凝'键值对
五. 字典推导式
python
import random
randomdict = {random.randint(1,10) : random.randint(10,100) for i in range(10)}
print(randomdict)
# {8: 90, 3: 90, 2: 48, 4: 95, 7: 37, 6: 30}
python
name = ["一梦","冷毅毅","香凝","黛蓝"]
sign = ["水瓶座","射手座","双鱼座","双子座"]
for i in zip(name,sign):
print(i)
diction = {i:j for i,j in zip(name,sign)}
print(diction)
# ('一梦', '水瓶座')
# ('冷毅毅', '射手座')
# ('香凝', '双鱼座')
# ('黛蓝', '双子座')
# {'一梦': '水瓶座', '冷毅毅': '射手座', '香凝': '双鱼座', '黛蓝': '双子座'}