下面小编就整理了在编程中,比较常用的【字典】入门到进阶的用法。
Python基础语法 - 专栏链接
目录
4. 字典常用方法:keys()、values()、items()、get()
1. 概念
字典 也是 Python 中最常用的数据类型之一。
列表 和 字典 都是对象集合。既然都有了 列表,为何还需要 字典 呢?我们来通过一个例子解答这个疑问。
场景假设:统计语文考试的同学名 和 考试分数。
列表统计:需要两个列表分别存放姓名和分数。
scores = [60,70,80,90]
students = ['小王','小刚','小红','小明']
字典统计:姓名为字典的键,分数为字典的值存放于字典中。
scores = {
'小王':60,
'小刚':70,
'小红':80,
'小明':90
}
# 如果我们需要查询小明的成绩,可以直接字典名scores搭配键['小明']取值
print(scores['小明'])
# 90
根据不同的需求,合理使用 列表 和 字典 能够让我们的程序代码更简洁更易懂。
2. 字典与列表的相同处、不同处
相同处:
1. 都有定义名称。
2. 都要用=赋值。
3. 用逗号作为元素间的分隔符。
不同处:
1. 列表外层用的是中括号[ ],字典的外层是大括号{ }
2. 列表中的元素是用英文冒号连接的独立的,而字典的元素是由一个个键值对组成的,用英文冒号连接。如'小明':90,其中我们把'小明'叫键(key),90叫值(value)。
需要注意的是,字典中的 键 是 唯一的,如果字典中有两个相同的 键,Python 只会保留后面那个。而 值 可以有相同任意类型的值。
3. 修改、添加、删除字典元素
scores = {
'小王':60,
'小刚':70,
'小红':80,
'小明':90
}
# 修改:字典名scores+存在的键['小王'],与之赋值就行
scores['小王'] = 65
print(scores)
# {'小王': 65, '小刚': 70, '小红': 80, '小明': 90}
# 添加:字典名scores+不存在的键['小张'],与之赋值就行
scores['小张'] = 100
print(scores)
# {'小王': 65, '小刚': 70, '小红': 80, '小明': 90, '小张': 100}
# 删除:del+字典名+存在的键['小王']
del scores['小王']
print(scores)
# {'小刚': 70, '小红': 80, '小明': 90, '小张': 100}
4. 字典常用方法:keys()、values()、items()、get()
keys():用于获取字典中所有的 键。
scores = {
'小王':60,
'小刚':70,
'小红':80,
'小明':90
}
print(scores.keys())
# dict_keys(['小王', '小刚', '小红', '小明'])
# 拓展:如果你想取字典scores的键,该怎么办?
# 此处只介绍了方法一,还有更方便的方法,items()方法那
print(type(scores.keys()))
# 注意keys()方法得到的是<class 'dict_keys'>类型,我们需要转换为列表类型(此时可使用:list()转换)。
for key in list(scores.keys()):
print(key)
# 小王
# 小刚
# 小红
# 小明
values():用于获取字典中所有的 值。
scores = {
'小王':60,
'小刚':70,
'小红':80,
'小明':90
}
print(scores.values())
# dict_values([60, 70, 80, 90])
# 取值方法和keys()方法拓展一样,items()会介绍更方便的
items():用于获取字典中所有的 键 + 值 元祖。
scores = {
'小王':60,
'小刚':70,
'小红':80,
'小明':90
}
for name, score in scores.items():
print('%s的分数是:%d' % (name, score))
# 小王的分数是:60
# 小刚的分数是:70
# 小红的分数是:80
# 小明的分数是:90
get():通过 键 获取字典对应的值,当 键 不存在于字典当中时不会报错,而是默认返回 None,也可通过第二个参数设置不存在时的默认返回值。
scores = {
'小王':60,
'小刚':70,
'小红':80,
'小明':90
}
# 下面两种取值都可以
# 存在键:小王
print(scores['小王'])
print(scores.get('小王'))
# 60
# 60
# 不存在键:小张
print(scores.get('小张'))
# None
# 当不存在键:get()第二个参数可修改默认返回值None。
print(scores.get('小张','小张没有参加语文考试'))
# 小张没有参加语文考试
print(scores['小张'])
# 报错:KeyError: '小张'
下图是字典的其他用法,有兴趣的同学可以尝试下,这里不做延伸。
5. 字典嵌套
前面提到过,字典的键是唯一的,值可以是任意类型的相同值。当值为字典(列表)时,就组合成了字典嵌套。
scores = {
'一班':{
'小王':60,
'小刚':70
},
'二班':{
'小红':80,
'小明':90
}
}
print(scores)
# {'一班': {'小王': 60, '小刚': 70}, '二班': {'小红': 80, '小明': 90}}
取值:如果我们想知道小明的分数,应该怎么取值呢?
其实和普通的字典一样,先获取字典 第一层 的键 ['二班'] 得到包含 小红 和 小明 以及分数的字典,再通过键 ['小明'] 就能得到分数了。
scores = {
'一班':{
'小王':60,
'小刚':70,
},
'二班':{
'小红':80,
'小明':90
}
}
print(scores['二班'])
# {'小红': 80, '小明': 90}
print(scores['二班']['小明'])
# 90
练习题
同学们,先自觉练习,答案在公众号,公众号回复暗号【答案】即可。
1. 在【Python编程】中用于获取字典所有的值的方法是?
A. keys()
B. values()
C. items()
D. get()
2. 下列代码的打印结果为?
shop = {
'铅笔':2,
'橡皮擦':3,
'文具盒':10,
}
shop['文具盒'] = 15
print(shop['文具盒'])
A. 2
B. 3
C. 10
D. 15
3. 下列代码的打印结果为?
shop = {
'铅笔':2,
'橡皮擦':3,
'文具盒':10,
'尺':{
'直尺':5,
'三角尺':6
}
}
print(shop['尺']['直尺'])
A. 尺
B. 10
C. 直尺
D. 5
4. 下列代码的打印结果对吗?
shop = {
'铅笔':2,
'橡皮擦':3,
'文具盒':10,
'尺':{
'直尺':5,
'三角尺':6
}
}
for i in shop:
print(i)
打印结果:
铅笔
橡皮擦
文具盒
直尺
三角尺
5. 小明去文具店一共买了【2根铅笔,1块橡皮擦,1个文具盒,2个10cm直尺】,请问小明一共花了多少元钱?
提示:已知文具价格如下代码所示。
知识点:字典根据键取值,嵌套字典注意键和值的数据类型。
shop = {
'铅笔':2,
'橡皮擦':3,
'文具盒':10,
'尺':{
'直尺':{
'20cm直尺':10,
'10cm直尺':5
},
'三角尺':6
}
}
联系我们,一起学Python吧
关注我们CSDN吧:每周每日,分享Python实战代码,入门资料,进阶资料,基础语法,爬虫,数据分析,web网站,机器学习,深度学习等等。
微信群(关注「Python家庭」一起轻松学Python吧)
QQ 群(983031854)