5.Python字典和元组:字典的增删改查、字典遍历、访问元组、修改元组、集合(set)
1. 字典(dict)
字典是一个无序的键值对集合,每个键对应一个值。
字典的增、删、改、查:
-
添加键值对:
my_dict = {'a': 1, 'b': 2} my_dict['c'] = 3 # 添加新键'c',值为3 print(my_dict) # 输出:{'a': 1, 'b': 2, 'c': 3} -
修改值:
my_dict['b'] = 5 # 修改键'b'对应的值 print(my_dict) # 输出:{'a': 1, 'b': 5, 'c': 3} -
删除键值对:
del my_dict['a'] # 删除键'a'及其对应的值 print(my_dict) # 输出:{'b': 5, 'c': 3} -
查找值:
value = my_dict.get('b') # 获取键'b'对应的值 print(value) # 输出:5如果键不存在,可以指定默认值:
value = my_dict.get('d', 'Not Found') # 'd' 不存在,返回 'Not Found' print(value) # 输出:Not Found
字典遍历:
-
遍历键值对:
for key, value in my_dict.items():print(key, value) # 输出: # b 5 # c 3 -
只遍历键:
for key in my_dict.keys():print(key) # 输出: # b # c -
只遍历值:
for value in my_dict.values():print(value) # 输出: # 5 # 3
2. 元组(tuple)
元组是不可变的有序集合,创建后不能修改内容。
访问元组:
-
索引访问:
my_tuple = (1, 2, 3, 4) print(my_tuple[1]) # 输出:2 -
切片访问:
print(my_tuple[1:3]) # 输出:(2, 3)
修改元组:
元组是不可变的,不能修改其中的元素。即不能通过索引修改值:
# 以下代码会抛出 TypeError
# my_tuple[1] = 5
不过,你可以通过重新创建元组来“修改”其内容:
my_tuple = (1, 2, 3, 4)
new_tuple = my_tuple[:2] + (5,) + my_tuple[3:]
print(new_tuple) # 输出:(1, 2, 5, 4)
3. 集合(set)
集合是一个无序且不重复的元素集合,常用于去重。
创建集合:
my_set = {1, 2, 3, 4}
print(my_set) # 输出:{1, 2, 3, 4}
集合的增、删、查:
-
添加元素:
my_set.add(5) # 添加单个元素 print(my_set) # 输出:{1, 2, 3, 4, 5} -
添加多个元素:
my_set.update([6, 7, 8]) # 添加多个元素 print(my_set) # 输出:{1, 2, 3, 4, 5, 6, 7, 8} -
删除元素:
my_set.remove(5) # 删除元素5,如果不存在会抛出 KeyError print(my_set) # 输出:{1, 2, 3, 4, 6, 7, 8}my_set.discard(10) # 尝试删除不存在的元素,不会抛出错误 -
清空集合:
my_set.clear() # 清空集合 print(my_set) # 输出:set()
集合操作:
-
集合的并集:
set1 = {1, 2, 3} set2 = {3, 4, 5} union_set = set1 | set2 # 或使用 set1.union(set2) print(union_set) # 输出:{1, 2, 3, 4, 5} -
集合的交集:
intersection_set = set1 & set2 # 或使用 set1.intersection(set2) print(intersection_set) # 输出:{3} -
集合的差集:
difference_set = set1 - set2 # 或使用 set1.difference(set2) print(difference_set) # 输出:{1, 2} -
集合的对称差集:
symmetric_difference_set = set1 ^ set2 # 或使用 set1.symmetric_difference(set2) print(symmetric_difference_set) # 输出:{1, 2, 4, 5}
总结:
- 字典用于存储键值对,支持增、删、改、查操作,且可以遍历键、值和键值对。
- 元组是不可变的有序集合,适用于需要保证数据不变的场景。访问方式类似于列表,但不可修改。
- 集合是无序且不重复的元素集合,适用于去重和集合操作,如并集、交集等。
相关文章:
5.Python字典和元组:字典的增删改查、字典遍历、访问元组、修改元组、集合(set)
1. 字典(dict) 字典是一个无序的键值对集合,每个键对应一个值。 字典的增、删、改、查: 添加键值对: my_dict {a: 1, b: 2} my_dict[c] 3 # 添加新键c,值为3 print(my_dict) # 输出:{a: 1, b: 2, c: …...
无限使用Cursor
原理:运行程序获得15天的免费试用期,重新运行程序重置试用期,实现无限使用。免费的pro账号,一个月有250的高级模型提问次数。 前提:已安装cursor cursor-vip工具:https://cursor.jeter.eu.org?p95d60efe…...
如何查看Linux ISO镜像中的kernel版本
要查看Linux ISO镜像中的kernel版本,可以使用以下几种方法: 使用uname命令: 将ISO镜像挂载到系统中,然后进入挂载目录。运行以下命令查看内核版本:uname -r这将显示当前运行的内核版本。 查看/proc/version文件&#…...
STM32启动过程概述
1. STM32启动过程概述 STM32 微控制器的启动过程是指从上电或复位开始,到系统开始执行用户程序的整个过程。这个过程包括了硬件初始化、引导加载程序 (Bootloader) 执行、系统时钟配置、外设初始化等步骤。 2. STM32 启动的基本流程 上电或复位 STM32 芯片的启动过…...
unity碰撞的监测和监听
1.创建一个地面 2.去资源商店下载一个火焰素材 3.把procedural fire导入到自己的项目包管理器中 4.给magic fire 0 挂在碰撞组件Rigidbody , Sphere Collider 5.创建脚本test 并挂在magic fire 0 脚本代码 using System.Collections; using System.Collections.Generic; usi…...
企业FTP替代升级,实现传输大文件提升100倍!
随着信息技术的飞速发展,网络安全环境也变得越来越复杂。在这种背景下,传统的FTP(文件传输协议)已经很难满足现代企业对文件传输的需求了。FTP虽然用起来简单,但它的局限性和安全漏洞让它在面对高效、安全的数据交换时…...
python基础入门:3.3序列通用操作
Python序列操作终极指南:解锁数据处理的核心技能 # 快速导航 sequence_types ["列表", "元组", "字符串", "字节序列"]一、核心操作三位一体 1. 索引与切片体系 # 通用索引规则 data ["A", "B", &…...
Linux | 自动化构建 —— make / Makefile
文章目录 自动化构建-make/Makefile一、make 工具概述二、Makefile 基本结构三、 Makefile和make的基本使用3.1最基本的gcc编译:3.2make执行Makefile文件3.3.PHONY伪目标 四、Makefile拓展4.1直接根据文件名编写Makefile4.2变量的使用4.3Makefile的适度扩展语法&…...
quartus24.1版本子模块因时钟问题无法综合通过,FPGA过OOC问题复盘
因为只负责一个子模块,所以需要单独对该子模块进行综合和过OOC,这时候已经有一些加虚拟pin文件,敲命令让子模块能过OOC的方法。但这个方法的前提是先过综合,然后再敲命令让虚拟管脚命令成功,最终可以过OOC。 今天负责…...
shell脚本控制——处理信号
Linux利用信号与系统中的进程进行通信。你可以通过对脚本进行编程,使其在收到特定信号时执行某些命令,从而控制shell脚本的操作。 1.重温Linux信号 Linux系统和应用程序可以产生超过30个信号。下表列出了在shell脚本编程时会遇到的最常见的Linux系统信…...
【个人开发】macbook m1 Lora微调qwen大模型
本项目参考网上各类教程整理而成,为个人学习记录。 项目github源码地址:Lora微调大模型 项目中微调模型为:qwen/Qwen1.5-4B-Chat。 去年新发布的Qwen/Qwen2.5-3B-Instruct同样也适用。 微调步骤 step0: 环境准备 conda create --name fin…...
电脑开机提示按f1原因分析及终极解决方法来了
经常有网友问到一个问题,我电脑开机后提示按f1怎么解决?不管理是台式电脑,还是笔记本,都有可能会遇到开机需要按F1,才能进入系统的问题,引起这个问题的原因比较多,今天小编在这里给大家列举了比…...
2025华为OD机试真题最新题库 (B+C+D+E卷) + 在线OJ在线刷题使用说明(C++、Java、Python合集)(正在更新E卷,目前已收录581道)
2024年8月份,华为已经开始使用E卷题库,题目和往期一样,旧题加新题的组合,有题目第一时间更新,大家可以跟着继续学习,目前使用复用题较多,可在OJ上直接找到对应的E卷学习,可以放心学习…...
《手札·避坑篇》2025年传统制造业企业数字化转型指南
一、引言 在数字化浪潮的推动下,传统制造业企业正加速向智能化、数字化转型。开源软件技术与制造MES(制造执行系统)产品的结合,为企业提供了高效、灵活且低成本的转型路径。本指南旨在为传统制造业企业的信息化负责人提供一套完整的数字化转型方案,助力企业实现高效、智能…...
Qt+海康虚拟相机的调试
做机器视觉项目的时候,在没有相机或需要把现场采集的图片在本地跑一下做测试时,可以使用海康的虚拟相机调试。以下是设置步骤: 1.安装好海康MVS软件,在菜单栏->工具选择虚拟相机工具,如下图: 2.打开虚拟…...
《Origin画百图》之边际分布曲线图
《Origin画百图》第六集——边际分布曲线图 入门操作可看《30秒,带你入门Origin》 边际分布曲线图,其中包含散点图形,而在图的边际有着分布曲线图。在比较数据以查看多个变量之间是否存在关系时非常有用。 1.数据准备:为多列XY数…...
如何提升自己的能力
提高自身能力是一个长期且综合的过程,需要从多个方面进行努力和持续的学习,以下是一些有效的方法: 明确目标与规划 确定目标:首先要明确自己想要提高哪些方面的能力,例如沟通能力、领导力、专业技能等,并根…...
【ORACLE】这个‘‘和null不等价的场景,deepseek你怎么看?
【ORACLE】一处’和null不等价的场景–to_char(number,varchar2) 背景 最近在做一个国产数据库替代项目,要求将ORACLE迁移到一个openGauss系数据库,迁移后,执行一个存储过程时,发现国产库的执行结果和ORACLE不一致, …...
安全知识之网络扫描器概念与相关技术
网络安全扫描器简介 迅速发展的Internet给人们的生活、工作带来了巨大的方便,但同时,也带来了一些不容忽视的问题,网络信息的安全保密问题就是其中之一。 网络的开放性以及黑客的攻击是造成网络不安全的主要原因。科学家在设计Internet之初就…...
Vim跳转文件及文件行结束符EOL
跳转文件 gf 从当前窗口打开那个文件的内容,操作方式:让光标停在文件名上,输入gf。 Ctrlo 从打开的文件返回之前的窗口 Ctrlwf 可以在分割的窗口打开跳转的文件,不过在我的实验不是次次都成功。 统一行尾格式 文本文件里存放的…...
Termux安装ssh实现电脑ssh
Termux下载 点击下载 在 Termux 中安装并使用 SSH,按照以下步骤操作: 1. 更新软件包列表 pkg update && pkg upgrade2. 安装 OpenSSH pkg install openssh3. 设置 SSH 密码(必须,否则无法使用 SSH 服务器)…...
DeepSeek大模型介绍、本地化部署与使用!【AI大模型】
一、DeepSeek 是什么? 1.技术定位 专注大模型与AGI研究,开发高性能基座模型(如 DeepSeek LLM 系列),支持长文本、多模态、代码生成等复杂任务。 提供开源模型(如 DeepSeek-MoE、DeepSeek-V2)…...
Axios 的原理
🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…...
Gitlab中如何进行仓库迁移
需求:之前有一个自己维护的新仓库A,现在需要将这个仓库提交并覆盖另一个旧的仓库B,需要保留A中所有的commit信息。 1.方法一:将原有仓库A导出后再导入到新的仓库B中 适用场景:新的仓库B是一个待建仓库,相当…...
Android的MQTT客户端实现
在 Android 平台上实现 MQTT 客户端的完整技术方案,涵盖基础实现、安全连接、性能优化和最佳实践: 一、技术选型与依赖配置 推荐库 Eclipse Paho Android Service(官方维护,支持后台运行) gradle 复制 // build.gradl…...
Centos挂载镜像制作本地yum源,并补装图形界面
内网环境centos7.9安装图形页面内网环境制作本地yum源 上传镜像到服务器目录 创建目录并挂载镜像 #创建目录 cd /mnt/ mkdir iso#挂载 mount -o loop ./CentOS-7-x86_64-DVD-2009.iso ./iso #前面镜像所在目录,后面所挂载得目录#检查 [rootlocalhost mnt]# df -h…...
Thread类以及常见方法
Thread类是JVM用来管理线程的一个类,每个线程都有一个唯一的Thread对象与之关联。 多一个线程,就多一条执行流,每个执行流也要一个对象来描述,而Thread类的对象就是用来描述一个线程的执行流,JVM 会将这些 Thread 对象…...
【蓝桥杯—单片机】第十一届省赛真题代码题解题笔记 | 省赛 | 真题 | 代码题 | 刷题 | 笔记
第十一届省赛真题代码部分 前言赛题代码思路笔记竞赛板配置内部振荡器频率设定键盘工作模式跳线扩展方式跳线 建立模板明确设计要求和初始状态显示功能部分数据界面第一部分第二部分第三部分调试时发现的问题 参数设置界面第一部分第二部分和第四部分第三部分和第五部分 按键功…...
【原创】Android Studio Ladybug 中Gradle配置
使用Android Studio创建项目后,由于需要下载的一下文件在国外,加上网速的问题,以及防火墙的问题,不少文件难以下载。常常导致项目创建后,要等很长时间,各种折腾,结果一个demo都跑不起来。 经过…...
CLion2024.3.2版中引入vector头文件报错
报错如下: 在MacBook端的CLion中引入#include <vector>报 vector file not found(引入map、set等也看参考此方案),首先可以在Settings -> Build,Execution,Deployment -> Toolchains中修改C compiler和C compiler的路…...
