引言
- 码字不易,如果这篇文章对您有帮助的话,希望您能点赞、收藏、加关注!您的鼓励就是我前进的动力!
一、字典
- 字典是一系列键值,对每个键都与一个值相关联,你可以用键来访问相关联的值。与键相关联的值可以是数、字符串、列表乃至字典。
二、字典的增删改查
(一)增:指定字典名、键和值
- 字典是一种动态结构。可随时在其中添加键值对。要添加键值对,可依次指定字典名、用方括号括起的键和相关联的值。
grade={'Python':100,'Chinese':90,'Java':85}
print(grade)
grade['English']=95
print(grade)
# 输出:
# {'Python': 100, 'Chinese': 90, 'Java': 85}
# {'Python': 100, 'Chinese': 90, 'Java': 85, 'English': 95}
(二)删:del语句
- 对于字典中不再需要的信息,可使用 del语句 将相应的键值对彻底删除。使用 del语句 时必须指定字典名和要删除的键。
grade={'Python':100,'Chinese':90,'Java':85}
print(grade)
del grade['Java']
print(grade)
# 输出:
# {'Python': 100, 'Chinese': 90, 'Java': 85}
# {'Python': 100, 'Chinese': 90}
(三)改:指定字典名、键和值
- 要修改字典中的值,可依次指定字典名、用方括号括起来的键,以及与该键相关联的新值。
grade={'Python':100,'Chinese':90,'Java':85}
print(grade)
grade['Java']=95
print(grade)
# 输出:
# {'Python': 100, 'Chinese': 90, 'Java': 85}
# {'Python': 100, 'Chinese': 90, 'Java': 95}
(四)查:get(), items(), keys(), values()
- 如果指定的键有可能不存在,应考虑使用方法 get() 而不要使用方括号表示法。调用 get() 时,如果没有指定第二个参数,且指定的键不存在python将返回None。
grade={'Python':100,'Chinese':90,'Java':85}
score=grade.get('English','This item does not exist!')
print(score)
# 输出:This item does not exist!
- 要编写遍历字典的for循环,可声明两个变量用于存储键值对中的键和值。注意要使用方法 items().
grade={'Python':100,'Chinese':90,'Java':85}
for key,value in grade.items():
print(f"Key:{key}")
print(f"Value:{value}")
# 输出:
# Key:Python
# Value:100
# Key:Chinese
# Value:90
# Key:Java
# Value:85
- 方法 keys() 返回字典的键。遍历字典时会默认遍历所有的键。
grade={'Python':100,'Chinese':90,'Java':85}
for key in grade.keys():
print(f"Key:{key}")
# 输出:
# Key:Python
# Key:Chinese
# Key:Java
- 方法 values() 返回字典的值。
grade={'Python':100,'Chinese':90,'Java':85}
for value in grade.values():
print(f"Value:{value}\n")
# 输出:
# Value:100
# Value:90
# Value:85
(五)其他:sorted(),
- 函数 sorted() 以特定的顺序对返回的键进行排序,可使用该函数来获得按特定顺序排列的键列表的副本。
grade={'Python':100,'Chinese':90,'Java':85}
for key in sorted(grade.keys()):
print(f"Key:{key}")
# 输出:
# Key:Chinese
# Key:Java
# Key:Python
- 较大的字典可以放在多行中,在输入左花括号后按回车键在下一行缩进四个空格。指定第一个建值对,并在它后面加上一个逗号。之后再回车键时,文本编辑器将自动缩进后续键值对,且缩进量与第一个键值对相同。在最后一个键值对后面,也加上逗号,为以后在下一行添加键值对做好准备。
grade={
'Python':100,
'Chinese':90,
'Java':85,
}
三、集合
- 集合:为剔除重复项可使用集合。
- 集合中的每个元素,都必须是独一无二的。
- 创建:可使用一对花括号直接创建集合,并在其中用逗号分隔元素。
course={'Java', 'Chinese', 'math', 'math', 'english', 'History'}
print(course)
# 输出:{'Java', 'english', 'math', 'History', 'Chinese'}
四、嵌套
(一)字典列表
- 字典列表:存储字典的列表。
Anny={'Python':100,'Chinese':90,'Java':85}
LiMing={'Python':90,'Chinese':100,'Java':95}
Danny={'Python':89,'Chinese':95,'Java':88}
grade=[Anny,LiMing,Danny]
for score in grade:
print(score)
# 输出:
# {'Python': 100, 'Chinese': 90, 'Java': 85}
# {'Python': 90, 'Chinese': 100, 'Java': 95}
# {'Python': 89, 'Chinese': 95, 'Java': 88}
(二)字典中存储列表
- 在字典中存储列表:每当需要在字典中将一个键关联到多个值时,都可以在字典中嵌套一个列表。
- 在遍历存储列表的字典的 for循环 中,我们需要再使用一个for循环来遍历与对应多个值的键值对。
grade={
'A':'LiHua',
'B':['Lena','Tina'],
'C':'Daming',
}
for stu in grade['B']:
print(stu)
# 输出:
# Lena
# Tina
(三)字典中存储字典
- 在字典中存储字典。在字典中存储的字典,尽量要保持相同的结构。这样会使得嵌套的字典处理起来更加容易。
grade={
'Anny':{
'Python':100,
'Chinese':90,
'Java':85,
},
'LiMing':{
'Python':90,
'Chinese':100,
'Java':95,
}
}
for name,score in grade.items():
print(f"Name:{name}")
print(f"Python:{score['Python']},Chinese:{score['Chinese']},Java:{score['Java']}")
# 输出:
# Name:Anny
# Python:100,Chinese:90,Java:85
# Name:LiMing
# Python:90,Chinese:100,Java:95
参考资料:
[1] Eric Matthes. Python编程从入门到实践. 北京:人民邮电出版社, 2020.
[2]嵩天,礼欣,黄天羽. Python语言程序设计基础(第二版). 北京:高等教育出版社, 2017.
[3]Python语言程序设计,北京理工大学 嵩天