Python基础学习笔记(七)——元组
目录
- 一、一维元组的介绍、创建与修改
- 二、组合的基本操作
- 1. 遍历
- 2. 取长度
- 3. 取最值
- 4. 打包
- 5. 批处理
- 5.1 map()函数
- 5.2 lambda 表达式
- 5.3 lambda 表达式 + map()函数
一、一维元组的介绍、创建与修改
元组(tuple
),一种不可变、有序、可重复的数据结构,属于不可变序列,由小括号()
内、用逗号分隔的一组元素组成。
与同为序列的列表一样,元组的元素可以是任意数据类型的对象的引用,并通过索引来访问元素;但区别于可变序列,我们无法直接对元组进行增删改操作。
准确的说,应该是元组对对象的引用,也就是元素id
,不能改变。如果元素指向不可变对象,那么改变它通常指的是改变id
;但如果元素指向可变对象,则可以修改值而内存地址不变。
# 修改元组
t = (1, [2])
t[1][0] = 1print(t)
(1, [1])
在实际应用中,不可变序列有一定优势。为了防止多端同时操作发生混乱,通常会在某一端操作时,对数据结构上锁。在多任务环境下,同时操作多个可变对象需要加锁,而不可变对象则不用。这是因为,它们只能被浏览或取出数据,而不能被修改,所以在程序中尽量使用不可变序列。
与列表同理,元组同样有赋值创建和引用创建,对应类似的函数tuple()
。我们可以通过tuple()
和list()
实现元组的间接修改,即:使用list()
函数把元组转化成列表,然后在列表上进行修改,最后使用tuple()
转化回元组。
# 空元组
t = ()
t = tuple()# 赋值创建
t = (1,) # 单元素元组的创建格式
t = (1, 2, 3)
t = 1, 2, 3 # 省略写法# 引用创建
t = tuple([1, 2, 3])
print(t)# 间接修改
lst = list(t)
lst[0] = 0
t = tuple(lst)
print(t)
(1, 2, 3)
(0, 2, 3)
二、组合的基本操作
元组属于序列,适用于序列的所有基本操作,这部分内容在Python基础学习笔记(六)——列表中,这里不再重复。
以下操作适用于所有组合,包括列表、元组、字符串、集合、字典,下面主要以元组为例。
1. 遍历
t = 1, 2, 3
for i in t:print(i)
1
2
3
2. 取长度
len()
函数:返回组合内的元素个数。
t = 1, 2, 3
print(len(t))
3
3. 取最值
max()
函数:返回可迭代对象内元素的最大值。
min()
函数:返回可迭代对象内元素的最小值。
t = 1, 2, 3
print(max(t), min(t))
3 1
4. 打包
zip()
函数:将一个或多个可迭代对象的对应元素依次打包成元组,并返回由这些元组组成的zip
对象迭代器。若输入的可迭代对象的长度不同,打包的元组数量取最短可迭代对象的长度。
d = {'a': 1}
t = 1, 2
s = {'a', 'b', 'c'} # 打包单个可迭代对象
for i in zip(d): print(i) # 打包多个不同长度的可迭代对象
print(list(zip(t, s)))
('a',)
[(1, 'c'), (2, 'a')]
5. 批处理
5.1 map()函数
map(function, iterable)
函数:对可迭代对象中的每一个元素调用指定函数,返回一个map
对象迭代器。
t = 1, 2for i in map(float, t):print(i)
1.0
2.0
5.2 lambda 表达式
lambda
表达式是一种匿名函数,可在非正式定义函数的情况下使用。它由关键字lambda
开头,后接参数列表,然后用冒号分隔,最后是一个表达式。
它们通常作为临时函数,用于执行简单操作或为其他函数传递参数。
add = lambda x, y: x + y
print(add(2, 3))
5
5.3 lambda 表达式 + map()函数
该模式允许我们更灵活地进行多个可迭代对象之间的自定义运算。
t1 = 1, 2, 3
t2 = 11, 22, 33
t3 = 10, 20, 30
# 参数列表与iterable依次对应
print(list(map(lambda x, y, z: x*y-z, t1, t2, t3)))
[1, 24, 69]
相关文章:
Python基础学习笔记(七)——元组
目录 一、一维元组的介绍、创建与修改二、组合的基本操作1. 遍历2. 取长度3. 取最值4. 打包5. 批处理5.1 map()函数5.2 lambda 表达式5.3 lambda 表达式 map()函数 一、一维元组的介绍、创建与修改 元组(tuple),一种不可变、有序、可重复的数…...

安卓开发:相机水印设置
1.更新水印 DecimalFormat DF new DecimalFormat("#"); DecimalFormat DF1 new DecimalFormat("#.#");LocationManager LM (LocationManager)getSystemService(Context.LOCATION_SERVICE); LM.requestLocationUpdates(LocationManager.GPS_PROVIDER, 2…...
Excel工作表单元格单击选中事件,VBA动态数值排序
Excel工作表单元格单击选中事件,VBA动态数值排序(WX公众号:Excel潘谆白说VBA) 文章目录 前言一、运行效果二、代码前言 面对每月的消费账单,面对月底待还的信用卡或花呗,面对不足三位数的余额,你是否怀疑过账单自己的消费。你是否因此开始记账,每个月记流水,想知道当月…...

数据结构~~链式二叉树
目录 一、基本概念 链式存储概念 二、链式二叉树的结构 链式二叉树结构 构建链式二叉树 二叉树的遍历 二叉树节点和高度等 二叉树销毁 三、链式二叉树的练习 相同的树 对称二叉树 另外一颗子树 二叉树前序遍历 二叉树遍历 四、完整代码 Tree.h Tree.c 五、总结 一…...

线程池,日志
所要用到的知识点: 多线程的创建 生产消费模型, 线程锁 条件变量 代码: 线程池日志...
vue的图片上传
关于vue3的图片上传,这里记录一下,有兴趣的朋友可以参考。。。。 <van-uploader:after-read"afterRead"v-model"headImg":max-count"1"class"picture"/> const fileList ref();const afterRead (fil…...
题解 P1150
题解 P1150 因为k个烟蒂1根烟1个烟蒂 所以k-1个烟蒂1根烟 注意减掉最后一根烟的烟蒂 (因这题并没有借烟蒂换烟再还回这一说) 此解法为小学4~6年级水平 #include <bits/stdc.h>using namespace std;int main(){int n,k;cin>>n>>k;cout<<n(n-1)/(k-…...

牛客NC324 下一个更大的数(三)【中等 双指针 Java/Go/PHP/C++】参考lintcode 52 · 下一个排列
题目 题目链接: https://www.nowcoder.com/practice/475da0d4e37a481bacf9a09b5a059199 思路 第一步:获取数字上每一个数,组成数组arr 第二步:利用“下一个排列” 问题解题方法来继续作答,步骤:利用lintc…...

Vue3解决“找不到模块“@/components/xxx.vue”或其相应的类型声明”
文章目录 前言背景问题描述解决方案总结 前言 在使用 Vue 3 开发项目时,遇到“找不到模块 ‘/components/xxx.vue’ 或其相应的类型声明”的错误是一个常见问题。这通常与 TypeScript 和模块解析相关的配置不当有关。本文将详细介绍如何解决此问题,确保…...
nginx的Connection refused
问题描述 nginx的错误日志中突然出现大量的的Connection refused问题,日志如下: 2020/03/19 09:52:53 [error] 20117#20117: *7403411764 connect() failed (111: Connection refused) while connecting to upstream, client: xxx.xxx.xxx.xxx, server:…...
Haskell 的高阶函数(Higher-order functions)
本节继续介绍Haskell的知识,本节内容介绍的是高阶函数(Higher-order functions)的概念和应用。高阶函数是指能够接受其他函数作为参数,或者返回函数作为结果的函数。 Functions as values(函数作为值)&…...
Unity websocket客户端
🏆 个人愚见,没事写写笔记 🏆《博客内容》:Unity3D开发内容 🏆🎉欢迎 👍点赞✍评论⭐收藏 🔎目标:服务器和客户端可以实时的传输信息 ☀️实现目标: 使用的w…...

每日一题——博弈论(枚举与暴力)
博弈论 题目描述 运行代码 #include<iostream> #include<vector> using namespace std; int main(){int n;cin >> n;vector<int> d(n,0);for(int i 0;i < n;i){cin >> d[i];}vector<int> in(1000,0);for(int k 1;k<3;k){for(int…...

pytorch笔记:torch.nn.Flatten()
1 介绍 torch.nn.Flatten(start_dim1, end_dim-1) 将一个连续的维度范围扁平化为一个张量 start_dim (int)要开始扁平化的第一个维度(默认值 1)end_dim (int)要结束扁平化的最后一个维度(默认值 -1) 2 举例 input torch.ra…...

一个人应该怎么操作抖音小店呢?店铺操作流程给你讲解清楚!
大家好,我是电商小V 现在入驻抖音小店的有很多新手,新手最关心的就是一个人应该如何操作抖音小店,操作抖音小店需要做好哪几步呢?关于这个问题咱们就来详细的讲解一下, 第一点:开店 开店是做店的第一步&…...

“等保测评与安全运维的协同:保障企业网络安宁
"等保测评与安全运维的协同:保障企业网络安宁"是一个涉及信息安全领域的重要话题。这里,我们可以从几个方面来探讨这个主题。 1. 等保测评(等级保护测评) 等保测评,即信息安全等级保护测评,是依…...

python抽取pdf中的参考文献
想将一份 pdf 论文中的所有参考文献都提取出来,去掉不必要的换行,放入一个 text 文件,方便复制。其引用是 ieee 格式的,形如: 想要只在引用序号(如 [3])前换行,其它换行都去掉&…...

Java进阶学习笔记21——泛型概念、泛型类、泛型接口
泛型: 定义类、接口、方法的时候,同时声明了一个或者多个类型变量(如: <E>),称之为泛型类、泛型接口、泛型方法,我们统称之为泛型。 说明这是一个泛型类。 如果不使用泛型,我们可以往ArrayList中传…...
第二天-⑦前后端需要注意的事项
①防xss跨站脚本攻击...
Python爬虫实战:研究MechanicalSoup库相关技术
一、MechanicalSoup 库概述 1.1 库简介 MechanicalSoup 是一个 Python 库,专为自动化交互网站而设计。它结合了 requests 的 HTTP 请求能力和 BeautifulSoup 的 HTML 解析能力,提供了直观的 API,让我们可以像人类用户一样浏览网页、填写表单和提交请求。 1.2 主要功能特点…...
conda相比python好处
Conda 作为 Python 的环境和包管理工具,相比原生 Python 生态(如 pip 虚拟环境)有许多独特优势,尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处: 一、一站式环境管理:…...

JavaScript 中的 ES|QL:利用 Apache Arrow 工具
作者:来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗?了解下一期 Elasticsearch Engineer 培训的时间吧! Elasticsearch 拥有众多新功能,助你为自己…...
Cesium1.95中高性能加载1500个点
一、基本方式: 图标使用.png比.svg性能要好 <template><div id"cesiumContainer"></div><div class"toolbar"><button id"resetButton">重新生成点</button><span id"countDisplay&qu…...
大语言模型如何处理长文本?常用文本分割技术详解
为什么需要文本分割? 引言:为什么需要文本分割?一、基础文本分割方法1. 按段落分割(Paragraph Splitting)2. 按句子分割(Sentence Splitting)二、高级文本分割策略3. 重叠分割(Sliding Window)4. 递归分割(Recursive Splitting)三、生产级工具推荐5. 使用LangChain的…...

屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!
5月28日,中天合创屋面分布式光伏发电项目顺利并网发电,该项目位于内蒙古自治区鄂尔多斯市乌审旗,项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站,总装机容量为9.96MWp。 项目投运后,每年可节约标煤3670…...

HBuilderX安装(uni-app和小程序开发)
下载HBuilderX 访问官方网站:https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本: Windows版(推荐下载标准版) Windows系统安装步骤 运行安装程序: 双击下载的.exe安装文件 如果出现安全提示&…...

10-Oracle 23 ai Vector Search 概述和参数
一、Oracle AI Vector Search 概述 企业和个人都在尝试各种AI,使用客户端或是内部自己搭建集成大模型的终端,加速与大型语言模型(LLM)的结合,同时使用检索增强生成(Retrieval Augmented Generation &#…...
Web中间件--tomcat学习
Web中间件–tomcat Java虚拟机详解 什么是JAVA虚拟机 Java虚拟机是一个抽象的计算机,它可以执行Java字节码。Java虚拟机是Java平台的一部分,Java平台由Java语言、Java API和Java虚拟机组成。Java虚拟机的主要作用是将Java字节码转换为机器代码&#x…...
如何配置一个sql server使得其它用户可以通过excel odbc获取数据
要让其他用户通过 Excel 使用 ODBC 连接到 SQL Server 获取数据,你需要完成以下配置步骤: ✅ 一、在 SQL Server 端配置(服务器设置) 1. 启用 TCP/IP 协议 打开 “SQL Server 配置管理器”。导航到:SQL Server 网络配…...