安迪Python

V1

2022/10/18阅读:10主题:默认主题

36. `[键名]`和`get( )函数`提取字典的值

36. [键名]get( )函数提取字典的值

1. 列表知识回顾

36-1列表的相关操作
36-1列表的相关操作

2. 列表和字典取值的区别

【列表索引取值】

【语法】列表名[索引]

# 新建一个str列表
str_list = ["当归""人参",  "黄芪"]

# 索引0取列表的第1元素`当归`
print(str_list[0])

【终端输出】

当归

字符串[索引]。通过字符串索引,我们可以提取字符串中的某个元素。

列表名[索引]。通过列表索引,我们可以提取列表中的某个元素。

字典名[键名]。通过字典键名,我们可以提取字典中某个键对应的值。

【相同点】

数据名字[xx]

数据名字[xx]

字符串、列表、元组、字典几个数据取值语法结构相似,都由3部分构成:

  1. 数据名字

  2. 英文中括号

  3. 索引/键名

【区别是】

字符串、列表、元组的中括号里是索引

字典的中括号里是键名

3. [键名]取值语法

【语法】

字典名[键名]

36-2字典[键名]取值
36-2字典[键名]取值

[键名]取值语法主要包含3个部分:

  1. 字典名

  2. 英文中括号

  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(键名)

36-3字典名.get(键名)取值
36-3字典名.get(键名)取值

get( )函数取值语法主要包含5个部分:

  1. 字典名

  2. 英文小圆点

  3. get

  4. 英文小括号

  5. 键名

【代码示例】

# 新建一个字典
code_dict = {
    "北京":100000,  
    "上海":200000
    "广州":510000
}
    
print(code_dict.get('北京')) 

【终端输出】 100000

【代码解析】

  1. code_dict 是我给字典起的名字。

  2. 字典名后紧跟一个英文小圆点。

  3. 圆点后接一个函数名get

  4. 函数后通常都紧跟一个英文小括号。

  5. 函数的括号中通常是函数的参数,这里需要填写的参数是字典的键名。

【返回值】

运行代码后,程序返回的代码是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个参数:

  1. 字符串"要查询的城市是:"

  2. city;这是变量名,输出时会自动替换成变量接收的内容;

  3. ";"这里的分号主要是为了输出美观。

  4. 字符串"该城市的邮编是:"

  5. 函数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

字典的嵌套取值方法和列表嵌套取值方法类似。

【语法】

字典名[键名][键名]

【代码示例】

  1. 字典名[联系方式]从字典中取出联系方式对应的值:
info_dict = {
    '基本信息':('张三','男','1990年'),
    '兴趣爱好':['篮球','吉他','Python'],
    '联系方式':{'电话号码':18088889999,'邮箱':'77997799@qq.com'}
}

# 字典中的电话号码
print(info_dict['联系方式'])

# 查看取到的元素的数据类型
print("取到的元素数据类型为",type(info_dict['联系方式']))

【终端输出】

{'电话号码': 18088889999, '邮箱': '77997799@qq.com'}
取到的元素数据类型为 <class 'dict'>

字典名.[联系方式]取到的是取到的联系方式对应的值,数据类型仍然是一个字典。

我们要想取到电话号码,需要再去一次值。

  1. 字典名['联系方式']['电话号码']才能取到电话号码对应的值:
info_dict = {
    '基本信息':('张三','男','1990年'),
    '兴趣爱好':['篮球','吉他','Python'],
    '联系方式':{'电话号码':18088889999,'邮箱':'77997799@qq.com'}
}

# 字典中的电话号码
print(info_dict['联系方式']['电话号码'])

【终端输出】

18088889999

11. 总结

36-4字典总结
36-4字典总结

分类:

后端

标签:

Python

作者介绍

安迪Python
V1