当前位置: 首页 > news >正文

Python从入门到高手9.2节-Python字典的操作方法

目录

9.2.1 字典的操作

9.2.2 字典的查找

9.2.3 字典的修改

9.2.4 字典的添加

9.2.5 字典的删除

9.2.6 今天你逛街了吗


9.2.1 字典的操作

字典类型是一种抽象数据类型,抽象数据类型定义了数据类型的操作方法,在本节的内容中,教同学们彻底掌握字典类型的常用操作方法。

image.png

字典的常用操作方法,主要有分为四类:字典的查找,字典的修改,字典的添加,字典的删除。

9.2.2 字典的查找

(1) 查找键名是否存在

查找方法:

1. key in dict  

2. key not in dict

key表示字典的键名,如果键名存在,则返回True,否则返回False。not in 表示是否不存在的意思。

代码实例:

# __desc__ = 通过in操作符,查找键是否存在 # 定义一个字典对象
book = {"name": "108节课彻底学通Python", "author": "薯条老师"} 
# 查找book中是否存在price的键名,如果存在则返回True
if "price" in book:  print("there is a key named price in book") # 通过not in 来查找键是否不存在,如果不存在则返回True
if "price" not in book:  print("there is no key named price in book")

(2) 查找键所对应的键值

查找方法:

1. dict[key]

key表示字典的键名,如果键名存在,会返回键值,如果键名不存在,则抛出异常。

2. dict.get(key, default=None)

key表示字典的键名,如果键名存在,会返回键值,如果键名不存在,则返回参数default指定的值。

操作符[]在列表和元组中用来进行索引访问和切片,在字典中,用来进行键值访问,修改键值,添加键值对。

代码实例:

# __desc__ = 通过[]操作符来获取键值 
# 定义一个字典对象
book = {"name": "108节课彻底学通Python", "author": "薯条老师"} # 直接通过[]操作符获取键值
price = book["price"]
# 在执行上文代码时抛出异常,因为键名"price"并不存在 
# 可以先通过in操作来查找键名是否存在,来避免抛出异常
if "price" in book:  # 如果存在键名"price",则通过[]操作符获取键值  price = book["price"]

字典类型的get方法会先自动判断键名是否存在,避免了键名不存在时的错误异常。

代码实例:

# __desc__ = 通过字典类型的get方法来获取键值 
# 定义一个字典对象
book = {"name": "108节课彻底学通Python", "author": "薯条老师"} 
# 执行get方法时,指定default参数的值为0
# 如果键名不存在,那么会返回在default参数中指定的值
price = book.get("price", 0) 
# price的输出为0

(1) 查找字典的所有键名

操作语法:

dict.keys()

字典类型的keys方法返回的是一个dict_keys类型,dict_keys是一个可迭代对象,我们可以在for循环中进行遍历。

代码实例:

# __desc__ = 通过字典类型的keys方法来获取所有键名 
# 定义一个字典对象
book = {"name": "108节课彻底学通Python", "author": "薯条老师"} 
# 在for循环中遍历字典的键值
for name in book.keys():  # name是一个变量,Python会自动将键名赋值给变量name  print(book[name]) """程序的输出为:
"108节课彻底学通Python"
"薯条老师"
"""

可将dict_keys类型通过显示类型转换,转换为列表或元组类型。例如list(dict_keys)或者tuple(dict_keys)。同学们在进行学习的时候,要多进行发散性思考。

(2) 查找字典中的所有键值

操作语法:

dict.values()

字典类型的values方法返回的是一个dict_values类型,dict_values是一个可迭代对象,同样可以在for循环中进行遍历。

代码实例:

# __desc__ = 通过字典类型的values方法来获取所有键值 
# 定义一个字典对象 
book= {"name": "108节课彻底学通Python", "author": "薯条老师"} # 在for循环中遍历字典的键值
for value in book.values():  # value是一个变量,Python会自动将键值赋值给变量value  print(value) """程序的输出为:
"108节课彻底学通Python"
"薯条老师"
"""

(5) 查找字典的所有键值对

在字典类型的keys与values方法中,只能单独地获取键名或键值。想必同学们会有这样的疑问,可不可以一次性获取键名和键值?

通过字典类型的items方法,可以返回字典中的键值对。字典类型的items方法返回的是一个dict_items类型。dict_items是一个可迭代对象,现在编写一段代码,在for循环中同时获取键名和键值。

代码实例:

# __desc__ = 通过字典类型的items方法来获取键值对 
# 定义一个字典对象
book = {"name": "108节课彻底学通Python", "author": "薯条老师"} # 同学们须注意遍历键名与键值的语法
for name, value in book.items():  print(name, "-->", value)  """程序的输出为:
name-->108节课彻底学通Python
author-->薯条老师
"""

9.2.3 字典的修改

Python中字典的键是只读的,修改的是键名对应的键值。

(1) 修改字典的键值

操作语法:

dict[key] = value

key表示键名,value表示键值。键名不存在时,会插入新的键值对。

9.2.4 字典的添加

(1) 操作符:[]

操作语法:

dict[new_key] = value

new_key表示新的键名,value表示键值。

代码实例:

# __desc__ = 通过操作符[]来添加新的键值对 
# 定义一个空的字典对象
book = {} 
book["author"] = "薯条老师"
# book的输出为{'author': '薯条老师'}

(2) dict.setdefault(key, default=None)

参数key表示键名,如果键存在,会返回键所对应的键值,否则添加一个新的键值对。通过参数default来指定新键的键值,返回值为键名所对应的键值,如果未指定键值,则返回值为None。

代码实例:

# __desc__ = 通过setdefault方法来添加新的键值对 
# 定义一个空的字典对象
book = {} 
# 未通过default参数指定键值
returned_value = book.setdefault("author")
# returned_value的值为None
# book的输出为{'author': None} # 通过default参数指定键值
returned_value = book.setdefault("price", 66)
# returned_value的值为66
# book的输出为{'author': None, 'price': 66}

(3) dict.update(iterable)

iterable表示可迭代对象,传递的参数主要为字典类型,列表类型,元组类型,无返回值。通过字典对象来更新字典时,如果键名存在,则字典对象中键名的键值被更新为新的键值,如果键名不存在,添加新的键值对。通过列表,元组来更新字典时,列表/元组是二维的结构,具体可看代码实例。

代码实例:

# __desc__ = 通过setdefault方法来添加新的键值对 
# 定义一个空的字典对象book = {} 
# 通过字典来更新字典
book.update({"name": "108节课彻底学通Python", "author": "薯条橙子"}) 
""" book的输出为:
{"name": "108节课彻底学通Python", "author": "薯条橙子"}
""" # 通过列表或元组来更新字典时,列表与元组是一个二维的结构
# Python会将元组中的第一个元素作为键名,第二个元素作为键值
# 元组中只存在一个数据项时,不要遗漏逗号
book.update((("price", 69),)) 
""" book的输出为:
{"name": "108节课彻底学通Python", "author": "薯条橙子", "price": 69}
"""

9.2.5 字典的删除

(1) dict.pop(key)

pop方法用来删除指定的键,待删除的键必须存在于字典对象中,否则会抛出键名不存在的错误异常,返回值为键名对应的键值。

代码实例:

# __desc__ = 通过pop方法来删除键 
book = {"name": "108节课彻底学通Python", "author": "薯条老师"} 
# 删除键时,可以先通过in操作符来判断键名是否存在 
if "price" in book:  # 如果存在price键,就执行pop方法来删除  # 返回值为键名所对应的键值  price = book.pop("price")

(2) dict.popitem()

popitem方法用来删除字典中的键值对,默认删除字典末尾的键值对。方法的返回值为一个元组,元组的第一个元素为键名,第二个元素为键值。

代码实例:

# __desc__ = 通过popitem方法来删除键值对 
book = {"name": "108节课彻底学通Python", "author": "薯条老师"} 
# popitem方法的返回值为元组类型
item = book.popitem() # 元组的第一个元素为键名,第二个元素为键值
# 可通过索引来进行访问, 索引编号为0的是键名,编号为1的是键值
name = item[0]
value = item[1]# 也可以利用元组的自动解包来赋值
name, value = item

(3) dict.clear()

通过字典类型的clear方法来一键删除字典中的所有键,无返回值

代码实例:

# __desc__ = 通过clear方法来清空字典 
book = {"name": "108节课彻底学通Python", "author": "薯条老师"} 
# 执行clear方法来清空字典book.clear()
# 执行clear方法后,book的输出为{}

9.2.6 今天你逛街了吗

跟薯条老师学高级爬虫(JS逆向+安卓逆向),数据分析,数据科学,金融量化交易,以及机器学习+深度学习+大模型算法。坚持下去,你一定会成为高手。

薯条老师的学生在南方电网,林氏家居,京东,阿里等大厂。薯条老师的个人技术博客:Python神仙级入门教程-零基础学习数据分析,高级爬虫,机器学习+大模型算法。对本节教程有任何不懂的同学,亦可在评论区中进行评论。

http://www.lryc.cn/news/590287.html

相关文章:

  • 多维动态规划题解——不同路径【LeetCode】记忆化搜索
  • NumPy 常用操作详解汇总和实战示例
  • 泰语OCR识别技术方案
  • 【React Native】安装配置 Expo Router
  • STM32 ODR
  • obsidian1.8.10_win中文_Markdown编辑器_安装教程
  • 逆功率检测设备防逆流解决方案守护电网安全
  • 第五章 管道工程 5.4 管道安全质量控制
  • Uniswap V2/V3/V4简短说明
  • 功能测试和回归测试
  • 架构设计之计算高性能——单体服务器高性能
  • 更灵活方便的初始化、清除方法——fixture【pytest】
  • 使用Node搭建一个直播服务器,实时直播当前桌面
  • 获取印度股票数据API实例:NSE与BSE双市场对接指南
  • Python类中魔术方法(Magic Methods)完全指南:从入门到精通
  • [特殊字符]️ Snort 与 Suricata 入侵检测系统详解
  • 热点综述│高效泛化求解新范式:神经算子综述
  • IIS网站间歇性打不开暴力解决方法
  • 问题处理——qgroundcontrol强制全屏,怎么退出。
  • 20、鸿蒙Harmony Next开发:组件导航(Navigation)和页面路由(@ohos.router)
  • kafka3.6下载安装(传统架构/KRaft模式)+实例测试
  • JavaScript 文件下载功能实现原理解析
  • C++11迭代器改进:深入理解std::begin、std::end、std::next与std::prev
  • Apache SeaTunnel详解与部署(最新版本2.3.11)
  • 从混沌到秩序:数据科学的热力学第二定律破局——线性回归的熵减模型 × 最小二乘的能量最小化 × 梯度下降的负反馈控制系统,用物理定律重构智能算法的统一场论
  • 模型上下文协议(MCP)的工作流程、安全威胁与未来发展方向
  • Qt小组件 - 5 图片懒加载样例
  • 服务攻防-Java组件安全数据处理FastJsonJackSonXStream自动BP插件CVE漏洞
  • 算法穿上隐身衣:数据交易中数据黑箱与算法透明性的法律义务边界
  • 大数据方向研究生就业前景与竞争力分析