Python字典和集合操作指南:创建、获取值、修改和删除键值对,复制和遍历方法全解析
文章目录
- 字典(dict)
- 创建字典
- 获取字典中的值
- 修改字典
- 删除字典中的键值对
- 复制字典
- 字典推导式
- 遍历字典
- 使用keys()方法
- 使用values()方法
- 使用items()方法
- 小结
- 集合(set)
- 创建集合
- 集合操作
- 集合运算
- 小结
- python精品专栏推荐
- python基础知识(0基础入门)
- python爬虫知识
字典(dict)
字典是一种新的数据结构,被称为映射(mapping)。它类似于列表,都用于存储对象。然而,相比列表,字典在查询数据时性能更佳。这是因为在字典中,每个元素都有一个唯一的名字,通过这个名字可以快速查找到指定的元素。
字典由多个键值对(key-value)构成,其中每个键值对都有一个唯一的键和对应的值。通过键可以快速查询到对应的值。创建字典的方式是使用大括号 {}
,并提供键值对。键可以是任意不可变对象(例如 int、str、bool、tuple 等),但通常我们使用字符串作为键。
创建字典
使用{}来创建字典,语法:{k1:v1,k2:v2,k3:v3}。
# 使用{}
d = {'name':'孙悟空', 'age':18, 'gender':'男'}
也可以使用dict()
函数来创建字典,每一个参数都是一个键值对,参数名就是键,参数值就是值(这种方式创建的字典,key都是字符串)。
# 使用dict()函数来创建字典
d = dict(name='孙悟空', age=18, gender='男')
还可以将一个包含双值子序列的序列转换为字典,双值序列指的是序列中只有两个值,如[1,2]
、('a',3)
和'ab'
等。子序列指的是序列中的元素也是序列的情况,比如[(1,2),(3,5)]
。
d = dict([('name', '孙悟饭'), ('age', 18)])
获取字典中的值
可以使用键来获取字典中的值,语法为:d[key]
。如果键不存在,会抛出异常KeyError
。
print(d['age'])
可以使用get(key[, default])
方法来根据键获取字典中的值。如果键在字典中不存在,则会返回None
,也可以指定一个默认值作为第二个参数,当获取不到值时返回默认值。
print(d.get('name'))
print(d.get('hello', '默认值'))
修改字典
可以使用d[key] = value
来修改字典中的键值对。如果键存在,则会覆盖其对应的值;如果键不存在,则会添加新的键值对。
d['name'] = 'sunwukong' # 修改字典的key-value
d['address'] = '花果山' # 向字典中添加key-value
另外,还可以使用setdefault(key[, default])
方法向字典中添加键值对。如果键已经存在于字典中,则返回键对应的值,不会对字典做任何操作;如果键不存在,则向字典中添加该键,并设置对应的值。
result = d.setdefault('name', '猪八戒')
result = d.setdefault('hello', '猪八戒')
还可以使用update([other])
方法将其他字典中的键值对添加到当前字典中。如果有重复的键,则后面的键值对会替换当前的。
d = {'a': 1, 'b': 2, 'c': 3}
d2 = {'d': 4, 'e': 5, 'f': 6, 'a': 7}
d.update(d2)
删除字典中的键值对
可以使用del
关键字删除字典中的键值对。
del d['a']
del d['b']
还可以使用popitem()
方法随机删除字典中的一个键值对,一般会删除最后一个键值对。删除后,该方法会将删除的键值对作为返回值返回,返回值是一个元组,包含两个元素,第一个元素是被删除的键,第二个元素是被删除的值。
result = d.popitem()
另外,还可以使用pop(key[, default])
方法根据键删除字典中的键值对。该方法会返回被删除的值。如果删除不存在的键,会抛出异常。如果指定了默认值,并且删除的键不存在,则不会报错,而是直接返回默认值。
result = d.pop('d')
result = d.pop('z', '这是默认值')
此外,可以使用clear()
方法来清空字典中的键值对。
d.clear()
复制字典
可以使用copy()
方法对字典进行浅复制。复制后的对象和原对象是独立的,修改一个不会影响另一个。需要注意的是,浅复制只会复制对象内部的值,对于值也是可变对象的情况,它们不会被复制。
d = {'a': 1, 'b': 2, 'c': 3}
d2 = d.copy()
d = {'a': {'name': '孙悟空', 'age': 18}, 'b': 2, 'c': 3}
d2 = d.copy()
d2['a']['name'] = '猪八戒'
print('d =', d, id(d))
print('d2 =', d2, id(d2))
字典推导式
与列表推导式类似,Python 还支持使用字典推导式创建字典。
# 创建一个包含数字的字典
d = {i: i**2 for i in range(5)}
print(d) # 输出:{0: 0, 1: 1, 2: 4, 3: 9, 4: 16}
遍历字典
遍历字典是指依次访问字典中的每一个键值对。在Python中,有几种方法可以实现字典的遍历操作。
使用keys()方法
keys()
方法会返回字典的所有键。我们可以通过遍历键来获取字典中的每个键值对。
示例代码:
d = {'name':'孙悟空','age':18,'gender':'男'}for k in d.keys():print(k, d[k])
使用keys()
方法可以获取字典中的所有键,然后通过遍历键来获取每个键值对的值。
使用values()方法
values()
方法会返回字典的所有值。我们可以通过遍历值来获取字典中的每个键值对。
示例代码:
d = {'name':'孙悟空','age':18,'gender':'男'}for v in d.values():print(v)
使用values()
方法可以获取字典中的所有值,然后通过遍历值来访问每个键值对的值。
使用items()方法
items()
方法会返回字典中的所有项,每一项是一个包含键和值的双值子序列。
示例代码:
d = {'name':'孙悟空','age':18,'gender':'男'}for k, v in d.items():print(k, '=', v)
使用items()
方法可以获取字典中的所有项,然后通过遍历项来获取每个键值对的键和值。
小结
字典是一种非常灵活的数据结构,可以用于存储各种类型的数据。通过键值对的方式,我们可以快速地查找、添加、修改和删除元素。此外,字典还支持字典推导式等高级用法,可以帮助我们更加方便地操作数据,同时你可以根据具体需求选择合适的方法进行遍历字典。
集合(set)
集合和列表非常相似,不同点如下:
- 集合中只能存储不可变对象
- 集合中存储的对象是无序的,不按元素的插入顺序保存
- 集合中不能存在重复的元素
创建集合
可以使用{}
来创建集合:
s = {10, 3, 5, 1, 2, 1, 2, 3, 1, 1, 1, 1} # <class 'set'>
注意,集合中不能包含可变对象,例如列表:
# s = {[1, 2, 3], [4, 6, 7]} # TypeError: unhashable type: 'list'
可以使用set()
函数来创建集合:
s = set() # 空集合
还可以通过set()
将序列和字典转换为集合:
s = set([1, 2, 3, 4, 5, 1, 1, 2, 3, 4, 5])
s = set('hello')
s = set({'a': 1, 'b': 2, 'c': 3}) # 只包含字典中的键
集合操作
可以使用以下操作来处理集合:
- 使用
in
和not in
来检查集合中的元素是否存在 - 使用
len()
来获取集合中元素的数量 - 使用
add()
向集合中添加元素 - 使用
update()
将一个集合中的元素添加到当前集合中 - 使用
pop()
随机删除并返回一个集合中的元素 - 使用
remove()
删除集合中的指定元素 - 使用
clear()
清空集合 - 使用
copy()
进行浅复制
示例代码:
s = {'a', 'b', 1, 2, 3, 1}print('c' in s) # False
print(len(s))s.add(10)
s.add(30)s2 = set('hello')
s.update(s2)
s.update((10, 20, 30, 40, 50))
s.update({10: 'ab', 20: 'bc', 100: 'cd', 1000: 'ef'})result = s.pop()s.remove(100)
s.remove(1000)s.clear()print(result)
print(s, type(s))
集合运算
在对集合进行运算时,不会影响原来的集合,而是返回一个运算结果。
示例代码:
s = {1, 2, 3, 4, 5}
s2 = {3, 4, 5, 6, 7}result = s & s2 # 交集运算
result = s | s2 # 并集运算
result = s - s2 # 差集
result = s ^ s2 # 异或集a = {1, 2, 3}
b = {1, 2, 3, 4, 5}result = a <= b # 检查一个集合是否是另一个集合的子集
result = {1, 2, 3} <= {1, 2, 3} # True
result = {1, 2, 3, 4, 5} <= {1, 2, 3} # Falseresult = {1, 2, 3} < {1, 2, 3} # 检查一个集合是否是另一个集合的真子集
result = {1, 2, 3} < {1, 2, 3, 4, 5} # Trueresult = a >= b # 检查一个集合是否是另一个的超集
result = a > b # 检查一个集合是否是另一个的真超集print('result =', result)
以上是关于集合的一些基本操作和运算,总结如下。
小结
当使用集合时,需要注意以下几点:
- 集合是一种无序且元素唯一的数据结构。
- 可以使用
{}
或set()
函数创建集合。 - 集合中只能存储不可变的对象,不能包含可变对象。
- 可以使用
in
和not in
来检查集合中的元素是否存在。 - 使用
len()
获取集合中元素的数量。 - 使用
add()
向集合中添加元素,使用update()
将一个集合中的元素添加到当前集合中。 - 使用
pop()
随机删除并返回一个集合中的元素,使用remove()
删除集合中的指定元素,使用clear()
清空集合。 - 使用
copy()
进行浅复制。 - 集合可以进行交集运算(
&
)、并集运算(|
)、差集运算(-
)和异或集运算(^
)。 - 可以使用
<=
、<
、>=
和>
来比较两个集合的关系,如子集、超集和真子集等。
总结起来,集合是一种非常有用的数据结构,适用于需要存储一组元素并进行快速元素查找和去重的场景。
python精品专栏推荐
python基础知识(0基础入门)
【python基础知识】0.print()函数
【python基础知识】1.数据类型、数据应用、数据转换
【python基础知识】2.if条件判断与条件嵌套
【python基础知识】3.input()函数
【python基础知识】4.列表和字典
【python基础知识】5.for循环和while循环
【python基础知识】6.布尔值和四种语句(break、continue、pass、else)
【python基础知识】7.实操-用Python实现“文字PK”小游戏(一)
【python基础知识】7.实操-用Python实现“文字PK”小游戏(二)
【python基础知识】8.编程思维:如何解决问题-思维篇
【python基础知识】9.函数的定义和调用
【python基础知识】10.用函数编写程序 - 实操篇
【python基础知识】10.用Python实现石头剪刀布小游戏-函数实操篇
【python基础知识】11.如何debug -常见报错原因及排查思路 - 思维篇
【python基础知识】12.类与对象(一)
【python基础知识】12.类与对象(二)
【python基础知识】13.类与对象(三)
【python基础知识】13.类与对象(四)
【python基础知识】14.图书管理系统的搭建(类与对象实操)
【python基础知识】15.编码基础知识
【python基础知识】16.文件读写基础及操作
【python基础知识】16.“古诗默写题”的python实现(文件读写和编码-实操篇)
【python基础知识】17.模块的概念以及如何引入
【python基础知识】18.实操-使用python自动群发邮件
【python基础知识】19.产品思维以及流程图的使用 - 思维篇
【python基础知识】20.“午饭吃什么”的python实现(产品思维-实操篇)
【python基础知识】21.高效偷懒的正确打开方式-毕业篇
【python文件处理】CSV文件的读取、处理、写入
【python文件处理】Excel自动处理(使用 openpyxl)
【python文件处理】-excel格式处理
python爬虫知识
【python爬虫】1.爬虫基础知识
【python爬虫】2.网页基础知识
【python爬虫】3.爬虫初体验(BeautifulSoup解析)
【python爬虫】4.爬虫实操(菜品爬取)
【python爬虫】5.爬虫实操(歌词爬取)
【python爬虫】6.爬虫实操(带参数请求数据)
【python爬虫】7.爬到的数据存到哪里?
【python爬虫】8.温故而知新
【python爬虫】9.带着小饼干登录(cookies)
【python爬虫】10.指挥浏览器自动工作(selenium)
【python爬虫】11.让爬虫按时向你汇报
【python爬虫】12.建立你的爬虫大军
【python爬虫】13.吃什么不会胖(爬虫实操练习)
【python爬虫】14.Scrapy框架讲解
【python爬虫】15.Scrapy框架实战(热门职位爬取)
【python爬虫】16.爬虫知识点总结复习
相关文章:
Python字典和集合操作指南:创建、获取值、修改和删除键值对,复制和遍历方法全解析
文章目录 字典(dict)创建字典获取字典中的值修改字典删除字典中的键值对复制字典字典推导式遍历字典使用keys()方法使用values()方法使用items()方法 小结 集合(set)创建集合集合操作集合运算小结 python精品专栏推荐python基础知…...
unity 接收拼接数据进行纹理替换且保存相机纹理到rtsp server(一)
1 rtsp 协议后编码解码 rtsp协议的问题就是,拼接完成后,还需要编码,而unity里面再需要解码,需要的过程多了一步编码再解码,大大加重了 2 rtsp 协议后轻量编码 rtsp协议使用mjpeg进行图片传输。why?这样做…...
视频讲解|3014 含分布式电源的配电网优化重构
目录 1 主要内容 2 讲解视频链接 3 部分程序 1 主要内容 该视频为程序目录中编号1034的讲解内容,该程序的链接为配电网优化重构matlab智能算法,本次重点讲解了基本环矩阵原理以及代码两步实现过程、如何利用基本环向量去创造可行解、粒子群优化过程、…...
分布式、锁、延时任务
1. redission redission 原理 Redis分布式锁-这一篇全了解(Redission实现分布式锁完美方案) 2.zk 2.1 指令 ls / / 下有哪些子节点 get /zookeeper 查看某个子节点内容 create /aa “test” delete /aa set /aa “test01” 2.2 创建节点 模式 默认创建永久 create -e …...
Mojo 语言官网
Mojo面向 AI 开发者的新型编程语言,无缝支持CPU、GPU,兼容Python,跟Python类似的语法,但是比Python快68000倍。目前Mojo仅支持Ubuntu,暂不支持Windows和Mac,可以在Mojo Playground先体验一下。 Mojo 语言…...
JTS:02 使用WKB操作数据
版本 org.locationtech.jts:jts-core:1.19.0 链接: github 代码 import org.locationtech.jts.geom.Coordinate; import org.locationtech.jts.geom.Geometry; import org.locationtech.jts.geom.GeometryFactory; import org.locationtech.jts.geom.Point; import org.loca…...
stonedb部署实践
1.使用docker部署,会有一些问题,启动失败: xiuchenggongxiuchengdeMacBook-Pro stonedb % docker logs 27a92a0510fd _main[ -f …...
wsl使用apt install net-tools报错
前两天折腾了几个小时把wsl安装好了,后面准备安装ifconfig命令的时候发现网络有问题,总结处理过程如下: 1.修改/etc/wsl.conf文件,修改后wsl.conf文件内容如下: [boot] systemdtrue [network] generateResolvConffals…...
python 使用requests爬取百度图片并显示
爬取百度图片并显示 引言一、图片显示二、代码详解2.1 得到网页内容2.2 提取图片url2.3 图片显示 三、完整代码 引言 爬虫(Spider),又称网络爬虫(Web Crawler),是一种自动化程序,可以自动地浏览…...
DataSecurity Plus:守护企业数据安全的坚实堡垒
在当今数字化时代,数据被认为是企业最宝贵的资产之一。然而,企业面临着巨大的数据安全挑战,其中之一就是数据泄露。数据泄露可能导致敏感信息的丧失、法律责任的追究以及声誉受损。因此,保护企业数据安全已经成为每个组织的首要任…...
《树莓派4B家庭服务器搭建指南》第二十一期:安装开源远程桌面服务rustdesk, 内网丝滑,外网流畅控制
title: 《树莓派4B家庭服务器搭建指南》第二十一期:安装开源远程桌面服务rustdesk, 内网丝滑,外网流畅控制Windows,macOS,Linux设备 tags: 个人成长 categories:树莓派不吃灰 前段时间, 有一台老式MacBook Pro被我改造成了影视资源解码主机, 《树莓派4B家庭服务器搭…...
Redis 分布式锁
面试题: Redis除了拿来做缓存,你还见过基于Redis的什么用法? 1.数据共享,分布式Session 2.分布式锁 3.全局ID 4.计算器、点赞 5.位统计 6.购物车 7.轻量级消息队列:list、stream 8.抽奖 9.点赞、签到、打卡 10.差集交集…...
水循环原理VR实景教学课件开发
日本核污水排海让人们越来越重视海洋大气层水循环的安全,水循环是一个周而复始、循环往复的动态过程,为了将水循环过程以形象、生动地形式展示出来,水循环VR全景动态演示逐渐受到大家青睐。 传统的水循环教育方式通常是通过图片、动画或实地考…...
[小尾巴 UI 组件库] 全屏响应式轮播背景图(基于 Vue 3 与 Element Plus)
文章归档于:https://www.yuque.com/u27599042/row3c6 组件库地址 npm:https://www.npmjs.com/package/xwb-ui?activeTabreadme小尾巴 UI 组件库源码 gitee:https://gitee.com/tongchaowei/xwb-ui小尾巴 UI 组件库测试代码 gitee:…...
关于ESP32S3无法识别到端口问题
前言 (1)因为实习问题,需要使用ESP32BOX进行二次开发。一般来说,接触一款MCU,3天上手是基本操作。但是对于乐鑫的芯片,环境搭建是真的折磨人(苦笑),而且官方文档几乎没有…...
如何判断bug是前端bug还是后端bug
1.前后端bug 特征: 前端主要负责显示数据,后端主要负责处理数据、存储数据,前后端主要通过接口进行数据交换。 前端bug的特征: 界面显示类问题:如文字大小不一,控件颜色不搭,控件不整齐&#x…...
EasyExcel填充数据EasyExcel填充数据流下载 easyexcel填充excel下载 easyexcel填充
EasyExcel填充数据EasyExcel填充数据流下载 easyexcel填充excel下载 easyexcel填充 1、填充数据然后将文件输出给浏览器 1、填充数据然后将文件输出给浏览器 官网地址 官网的demo填充生成的是file文件, 实际需求用的最多的是 填充完数据将Excel输出给浏览器 填充模版Excel文…...
精通数据集成:轻易云数据集成平台应用实战与技术内幕
企业系统中数据交互的重要性不言而喻。一个系统如果孤立运行,即使积累了海量数据,仍然是一座信息孤岛。另一方面,一个积极参与数据交互的系统,成为各系统之间的“交际花”,具备中台的性质。 然而,大多数情况…...
“2023中国数字化服务之选”榜单发布,谷器数据荣耀登榜!
9月7日,行业权威媒体Internet Deep联合eNET研究院、德本咨询重磅发布了“2023中国数字化服务之选”榜单,经专家评审认定,谷器数据凭借领先的综合技术实力与产品应用创新能力荣耀登榜! 谷器数据生产制造数字化服务根据客户整体需求…...
iisfastchi漏洞复现
1.查看版本 2.在路径中写入 php脚本 发现使用不了 3.环境搭建 结局打开 把限制打开...
虚拟机Ubuntu操作系统常用终端命令(详细解释+详细演示)
虚拟机Ubuntu操作系统常用终端命令 本篇讲述了Ubuntu操作系统常用的三个功能,即归档,软链接和用户管理方面的相关知识。希望能够得到大家的支持。 文章目录 虚拟机Ubuntu操作系统常用终端命令二、使用步骤1.归档1.1创建档案包1.2还原档案包1.3归档并压缩…...
【力扣每日一题】2023.9.12 课程表Ⅳ
目录 题目: 示例: 分析: 代码: 题目: 示例: 分析: 今天是课程表系列题目的最后一题,因为我在题库里找不到课程表5了,所以今天的每日一题就是最后一个课程表了。 题…...
CentOS 安装HTTP代理服务器 Tinyproxy
Tinyproxy是一个小型的基于GPL的HTTP/SSL代理程序,非常适合小型网络而且便于快速部署。这个代理程序最大的优点就是占用系统资源比较少。这里使用的系统为CentOS7.6,可以直接 yum 方式安装。 yum install tinyproxy -y 如果提示找不到安装包࿰…...
PHPWord 模板输出checkbox复选框和checked已勾选状态,以及 模板替换时数据如何分行
PHPWord 模板输出checkbox复选框和checked已勾选状态,以及 模板替换时数据如何分行 期望目标 和 模板配置复选框代码数据分行显示在使用PHPWORD模板替换时,经常会有 动态渲染选择项 和 选择项需要被勾选的要求,以及动态数据分行显示等要求。 本文根据 空复选框、勾选复选框…...
vue学习之 v-for key
v-for key Vue使用 v-for渲染的元素列表时,它默认使用“就地更新”的策略。如果数据项的顺序被改变,Vue 将不会移动 DOM元素来匹配数据项的顺序,而是就地更新每个元素。创建 demo9.html,内容如下 <!DOCTYPE html> <html lang"…...
ARM接口编程—IIC总线(exynos 4412平台)
IIC总线简介 IIC总线是Philips公司在八十年代初推出的一种串行、半双工总线 主要用于近距离、低速的芯片之间的通信;IIC总线有两根双向的信号线一根数据线SDA用于收发数据,一根时钟线SCL用于通信双方时钟的同步;IIC总线硬件结构简单ÿ…...
ReactNative进阶(二十一)开源插件 react-native-device-info 获取设备信息
文章目录 一、前言二、拓展阅读 一、前言 项目开发过程中,需要获取设备信息,例如获取设备名称。可通过使用开源的第三方组件react-native-device-info,该组件适用于iOS和Android双平台。 在ReactNative项目中可通过npm命令下载 react-nativ…...
MySql学习笔记05——DML
DML 插入数据insert insert into 表名(字段名1,字段名2,字段名3...)values(值1,值2,值3);字段名和值要一一对应(顺序对应,数据类型对应) insert into t_student(no,name,sex,age,…...
halcon对图片进行处理基础
实例图片 C:\Users\Public\Documents\MVTec\HALCON-19.11-Progress\examples\images*读取图片 read_image (Image1, D:/c/image/1.png) *读取大小 get_image_size(Image1,Width, Height) *创建窗口 dev_close_window() dev_open_window(0, 0, Width, Height, black, WindowHan…...
element-ui在vue中如何实现校验两个复选框至少选择一个!
整体进行验证 想验证至少选择一个复选框,可以将这两个复选框视为一个整体进行验证。在 Element UI 中,可以使用自定义验证规则来实现这一点。 你可以在 rules 对象中定义一个自定义的验证规则来检查 isCheck1 和 isCheck2 至少有一个被选中。 以下是一…...
wordpress4.9下载/推广一般收多少钱
1. public interface xxx 定义注解 public interface xxx 定义接口 interface和interface是完全不一样的,两码事 http://bbs.csdn.net/topics/380077509...
开发网站的流程/北京网
自动化项目群订单 | 技术 | 干货 | 社群关注可加入项目对接群!接单非标自动化设备的发展现状随着劳动力成本的不断提高,越来越多的企业开始关注工业自动化设备这一领域,特别是非标自动化设备,精锐达认为它不像传统普标设备那样制作…...
lib wordpress/全网营销网络推广
现在验证码的种类真的是越来越多,短信验证码、语音验证码、图片验证码、滑块验证码 ... 我们在 PC 的网页端或者手机上的 app 进行登录或者注册时,应该总会遇见图片验证码,比如下面这类:上面这些图片验证码都是通过Python制作出来…...
教育教学成果展示网站建设/百度投诉中心24小时电话
昨天接到客户服务器告警,看到一个nginx+php网站正在遭受CC攻击,导致服务器复制居高不下,正常业务访问大多数时候出现502错误。 CC攻击是 DDOS(分布式拒绝服务) 的一种,DDoS是针对IP的攻击,而CC攻击的是网页。CC攻击来的IP都是真实的,分散的。数据包都是正常的数据包,攻…...
wordpress 用户 评论/nba新闻最新消息
功能参考界面...
网站建设藤设计/网站维护是什么意思
title: { text: 折线图堆叠//标题 }, legend: { data:[邮件营销,联盟广告,视频广告,直接访问,搜索引擎] }, xAxis: { data: [周一,周二,周三,周四,周五,周六,周日] //y轴数据 }, "yAxis":[ {"type":"value","name":"…...