安迪Python
2022/10/18阅读:24主题:默认主题
36. `[键名]`和`get( )函数`提取字典的值
36. [键名]
和get( )函数
提取字典的值
1. 列表知识回顾

2. 列表和字典取值的区别
【列表索引取值】
【语法】列表名[索引]
# 新建一个str列表
str_list = ["当归", "人参", "黄芪"]
# 索引0取列表的第1元素`当归`
print(str_list[0])
【终端输出】
当归
字符串[索引]
。通过字符串索引,我们可以提取字符串中的某个元素。
列表名[索引]
。通过列表索引,我们可以提取列表中的某个元素。
字典名[键名]
。通过字典键名,我们可以提取字典中某个键对应的值。
【相同点】
数据名字[xx]
数据名字[xx]
字符串、列表、元组、字典几个数据取值语法结构相似,都由3部分构成:
-
数据名字
-
英文中括号
-
索引/键名
【区别是】
字符串、列表、元组的中括号里是索引
。
字典的中括号里是键名
。
3. [键名]
取值语法
【语法】
字典名[键名]
![36-2字典[键名]取值](https://files.mdnice.com/user/25867/85e41291-d9f6-458d-a408-e8e1c4452e73.png)
[键名]取值语法主要包含3个部分:
-
字典名
-
英文中括号
-
键名
4. [键名]提取字典的值
# 新建一个字典
code_dict = {
"北京":100000,
"上海":200000,
"广州":510000
}
print(code_dict['北京'])
【终端输出】
100000
【代码解析】
code_dict
是我给字典起的名字。
英文中括号[]
。
北京
是字典第1个元素的键名。
【返回值】
运行代码后,程序返回的代码是100000
。
100000
是字典第一个键值对中'北京'的值。
【提取后2个元素的值】
# 新建一个字典
code_dict = {
"北京":100000,
"上海":200000,
"广州":510000
}
print(code_dict['上海'])
print(code_dict['广州'])
【终端输出】 200000 510000
5. [键名]取值时若键名不在字典中则程序报错
# 新建一个字典
code_dict = {
"北京":100000,
"上海":200000,
"广州":510000
}
print(code_dict['成都'])
【终端输出】
KeyError: '成都'
【代码解析】
取值中的键名成都
不是字典中的键名,因此程序报错。
6. get( )函数
提取字典的值
【语法】
字典名.get(键名)

get( )函数取值语法主要包含5个部分:
-
字典名
-
英文小圆点
-
get
-
英文小括号
-
键名
【代码示例】
# 新建一个字典
code_dict = {
"北京":100000,
"上海":200000,
"广州":510000
}
print(code_dict.get('北京'))
【终端输出】 100000
【代码解析】
-
code_dict
是我给字典起的名字。 -
字典名后紧跟一个英文小圆点。
-
圆点后接一个函数名
get
。 -
函数后通常都紧跟一个英文小括号。
-
函数的括号中通常是函数的参数,这里需要填写的参数是字典的键名。
【返回值】
运行代码后,程序返回的代码是100000
。
100000
是字典第一个键值对中'北京'的值。
7. get函数取值时若键名不在字典中则程序返回None
# 新建一个字典
code_dict = {
"北京":100000,
"上海":200000,
"广州":510000
}
print(code_dict.get('成都'))
【终端输出】
None
【返回值】
取值中的键名成都
不是字典中的键名,程序运行后返回None。
8. 字典的两种取值方法
方法1:字典名[键名]
方法2:字典名.get(键名)
【若键名不在字典中】
字典名[键名]
程序报错。
字典名.get(键名)
返回None。
9. 通过input函数和get函数提取字典的值
# 新建一个字典
code_dict = {
"北京":100000,
"上海":200000,
"广州":510000
}
city=input("请输入你要查询的城市:")
print(city)
print(code_dict.get(city))
【终端输出】
北京
100000
【代码解析】
city=input("请输入你要查询的城市:")
city是变量名,用于存储我们从终端输入的要查询的城市。
input函数是输入函数,作用是用于接收从终端输入的内容。
【温馨提示】无论在终端输入的内容是什么数据类型,最终input函数得到的数据类型永远是字符串类型。
【代码优化】
# 新建一个字典
code_dict = {
"北京":100000,
"上海":200000,
"广州":510000
}
city=input("请输入你要查询的城市:")
print("要查询的城市是:",city, ";","该城市的邮编是:", code_dict.get(city))
【终端输出】
要查询的城市是: 北京 ; 该城市的邮编是: 100000
我们编写的代码时间久了,经常会记不起某行代码要表示的意思,因此这里对最后一行代码做了优化。
【代码解析】
print("要查询的城市是:", city, ";","该城市的邮编是:", code_dict.get(city))
print输出函数可以同时包含N个参数,两个参数之间用英文逗号分隔。
这里主要有5个参数:
-
字符串"要查询的城市是:"
-
city;这是变量名,输出时会自动替换成变量接收的内容;
-
";"这里的分号主要是为了输出美观。
-
字符串"该城市的邮编是:"
-
函数
code_dict.get(city)
;这里最终输出的函数运行的结果。
10. 字典的嵌套取值
【列表的嵌套取值】
【语法】列表[索引][索引]
【任务:提取19987658765】
# 新建一个stu列表
stu_list = ["白亭", ["联系方式", 19987658765] , ["ID号", 533001199101023456]]
# 用正索引取出列表的第2个元素
print(stu_list[1])
【终端输出】
['联系方式', 19987658765]
【代码解析】
索引[1]提取到的是列表的第2个元素。
第2个元素的数据类型也是列表。
因此,需要再使用一次索引提取列表中的元素。
# 新建一个stu列表
stu_list = ["白亭", ["联系方式", 19987658765] , ["ID号", 533001199101023456]]
# 用正索引取出列表的第2个元素,然后取出第2个元素中的第2个元素
print(stu_list[1][1])
【终端输出】
19987658765
字典的嵌套取值方法和列表嵌套取值方法类似。
【语法】
字典名[键名][键名]
【代码示例】
-
字典名[联系方式]
从字典中取出联系方式对应的值:
info_dict = {
'基本信息':('张三','男','1990年'),
'兴趣爱好':['篮球','吉他','Python'],
'联系方式':{'电话号码':18088889999,'邮箱':'77997799@qq.com'}
}
# 字典中的电话号码
print(info_dict['联系方式'])
# 查看取到的元素的数据类型
print("取到的元素数据类型为",type(info_dict['联系方式']))
【终端输出】
{'电话号码': 18088889999, '邮箱': '77997799@qq.com'}
取到的元素数据类型为 <class 'dict'>
字典名.[联系方式]
取到的是取到的联系方式
对应的值,数据类型仍然是一个字典。
我们要想取到电话号码,需要再去一次值。
-
字典名['联系方式']['电话号码']才能取到电话号码对应的值:
info_dict = {
'基本信息':('张三','男','1990年'),
'兴趣爱好':['篮球','吉他','Python'],
'联系方式':{'电话号码':18088889999,'邮箱':'77997799@qq.com'}
}
# 字典中的电话号码
print(info_dict['联系方式']['电话号码'])
【终端输出】
18088889999
11. 总结

作者介绍