Python - 数据容器tuple(元组)

news2024/11/22 21:58:00

目录

定义元组

元组的相关操作

修改元组

元组的删除

转换为元组tuple


定义元组

元组同列表一样,都是可以封装多个、不同类型的元素在内。
但最大的不同点在于:
元组一旦定义完成,就不可修改

元组定义:定义元组使用小括号,且使用逗号隔开各个数据,数据可以是不同的数据类型。

元组也支持嵌套:

t1=(1,"hello",False)
print(t1)
print(type(t1))

t11="a",1,True
print(t11)
print(type(t11))

t2=((1,2,3),[4,5,6])
print(t2[0][-1])
print(t2[1][0])

(1, 'hello', False)
<class 'tuple'>
('a', 1, True)
<class 'tuple'>
3
4

注意:元组只有一个数据,这个数据后面要添加逗号 

t1=("hello",)
t2=("hello")
print(t1)
print(type(t1))
print(t2)
print(type(t2))

 ('hello',)
<class 'tuple'>
hello
<class 'str'>

否则类型为字符串,而不是元组

元组的相关操作

 除了不可修改,元组与列表的操作几乎一模一样

修改元组

元组中的元素值是 不允许修改 的,但我们可以对元组进行连接组合,如下实例:

my_tuple1=("hello",[1,2,3])
my_tuple2=(True,666)

t=my_tuple1+my_tuple2

print(t)

('hello', [1, 2, 3], True, 666) 

值得注意的是 :

不可以修改元组的内容,否则会直接报错

my_tuple=("hello",[1,2,3])
my_tuple[1]=[4,5,6]

但可以修改元组内的list的内容(修改元素、增加、删除、反转等)

my_tuple=("hello",[1,2,3])

#my_tuple[1]=[4,5,6]

my_tuple[1][0]=True
print(my_tuple)

('hello', [True, 2, 3])

甚至可以提出来修改

my_tuple1=("hello",[1,2,3])

list_1=my_tuple1[1]
list_1[0]=666

print(my_tuple1)

('hello', [666, 2, 3])

元组的删除

不可用pop,只能用del全删

my_tuple1=("hello",[1,2,3])

#tmp=my_tuple1.pop(0)
del my_tuple1
print(my_tuple1)

报错:因为已经将my_tuple1连同名字都删了

Traceback (most recent call last):
  File "C:\顺序.py\y.py", line 5, in <module>
    print(my_tuple1)
NameError: name 'my_tuple1' is not defined

转换为元组tuple

my_list = [1, 2, 3, 4, 5]
my_tuple = (1, 2, 3, 4, 5)
my_str = "abcdefg"
my_set = {1, 2, 3, 4, 5}
my_dict = {"key1": 1, "key2": 2, "key3": 3, "key4": 4, "key5": 5}

# 类型转换: 容器转元组
print(f"列表转元组的结果是:{tuple(my_list)}")
print(f"元组转元组的结果是:{tuple(my_tuple)}")
print(f"字符串转元组结果是:{tuple(my_str)}")
print(f"集合转元组的结果是:{tuple(my_set)}")
print(f"字典转元组的结果是:{tuple(my_dict)}")

 列表转元组的结果是:(1, 2, 3, 4, 5)
元组转元组的结果是:(1, 2, 3, 4, 5)
字符串转元组结果是:('a', 'b', 'c', 'd', 'e', 'f', 'g')
集合转元组的结果是:(1, 2, 3, 4, 5)
字典转元组的结果是:('key1', 'key2', 'key3', 'key4', 'key5')

总结:

经过上述对元组的学习,可以总结出列表有如下特点:

  1. 可以容纳多个数据
  2. 可以容纳不同类型的数据(混装)
  3. 数据是有序存储的(下标索引)
  4. 允许重复数据存在
  5. 不可以修改(增加或删除元素等)
  6. 支持for循环

多数特性和list一致,不同点在于不可修改的特性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/158482.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

第二章.线性回归以及非线性回归—梯度下降法

第二章.线性回归以及非线性回归 2.5 梯度下降法 1.流程&#xff1a; 初始化θ0,θ1 不断改变θ0,θ1&#xff0c;直到J(θ0,θ1)到达一个全局最小值或局部极小值 2.图像分析&#xff1a; 1).图像层面分析代价函数&#xff1a; ①.红色区域表示代价函数的值比较大&#xff0…

leetcode 1443.Minimum Time to Collect All Apples in a Tree(收集苹果所需最短时间)

给出节点个数n, edges是连接的边&#xff0c;[a,b]是连接的两个顶点。 hasApple表示第 i 个顶点上是否有苹果。 走一条边需要耗时1s, 从顶点0出发&#xff0c;最后回到顶点0, 问收集所有苹果所需最短的时间。 思路&#xff1a; &#xff08;1&#xff09;DFS 可以把问题简化…

pdf文档控件Aspose.PDF for .NET 授权须知

Aspose.PDF是一款高级PDF处理API&#xff0c;可以在跨平台应用程序中轻松生成&#xff0c;修改&#xff0c;转换&#xff0c;呈现&#xff0c;保护和打印文档。无需使用Adobe Acrobat。此外&#xff0c;API提供压缩选项&#xff0c;表创建和处理&#xff0c;图形和图像功能&…

[ 解决报错篇 ] tomcat 执行 startup.bat 文件报错 -- tomcat 启动失败(安装 java 环境并配置环境变量)

&#x1f36c; 博主介绍 &#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 _PowerShell &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】 &#x1f389;点赞➕评论➕收藏 养成习…

Linux——팔 gdb部分基础知识以及操作系统的初级理解

文章目录一、gdb部分基础知识1、打断点2、逐语句过程3、监视&#xff0c;内存4、部分功能指令二、进程概念的初级理解1、冯-诺依曼体系结构2、操作系统的初级理解一、gdb部分基础知识 承接上一篇。 1、打断点 放一下全部代码 1 #include <stdio.h>2 3 int ADD(int n)4…

vs2017调试ffprobe源码

鄙人之前写过vs2017调试ffmpeg源码 现在由于需要分析视频文件里面的具体帧情况&#xff0c;需要用到ffprobe工具&#xff0c;为此本篇博客搭建vs2017工程&#xff0c;可以调试ffprobe&#xff0c;ffprobe比ffmpeg简单很多。 首先找到ffmpeg的编译目录&#xff0c;将下列三个文…

结构体内存对齐与位段详解

文章目录前言一、内存对齐1.内存对齐的规则2. 内存对齐的具体实例与运用3.为什么会有内存对齐&#xff1f;4.修改默认对齐数二、位段1.什么是位段2.位段的例子3.位段的优缺点结语前言 学习了结构体&#xff0c;你会算结构体的占用字节数吗&#xff0c;许多人恐怕摇头&#xff0…

ArcGIS分式、假分式标注

解说一下 ArcGIS中不同标注 直接标注语句分享见文后 分式标注 假分式标注 二、标注语句与视频教学 ArcGIS分数、假分数标注获取语句地址&#xff1a; ArcGIS分式、假分式标注&#xff01;标注语句直接分享 推荐学习 ArcGIS之模型构建器&#xff08;ModelBuilder&#xff0…

初级通讯录的实现详细攻略

我们设计的要求存储多少个人的信息我们使用宏&#xff0c;这样方便修改建立三个文件先从主函数入手为了持续多次&#xff0c;实现操作&#xff0c;我们利用循环&#xff0c;循环次数未知&#xff0c;我们只能选择while循环&#xff0c;do-while循环&#xff0c;我们始终要进行一…

ORB-SLAM2 --- LoopClosing::Run 回环检测线程解析

目录 1.函数作用 2.code 3.函数解析 3.1 查看是否有待处理的回环关键帧LoopClosing::CheckNewKeyFrames 3.2 检测闭环LoopClosing::DetectLoop 3.3 计算当前关键帧和上一步闭环候选帧的Sim3变换 3.4 闭环矫正 1.函数作用 回环检测&#xff0c;又称闭环检测&#xff0c…

文件操作和IO

一.文件的概念&#xff1a;狭义的文件指&#xff1a;硬盘上的文件和目录广义上的文件指&#xff1a;计算机中的很多软硬件资源路径&#xff1a;绝对路径&#xff1a;以c&#xff1a;d盘符开头的路径&#xff0c;比如c:/Intel/Logs/text.txt相对路径&#xff1a;以当前所在的目录…

Vue - 完美解决小数的四则运算(加减乘除)导致精度丢失问题,提供详细计算示例代码vue数据计算丢失精度

前言 由于 JavaScript 语言的问题,两个小数进行四则运算时,会出现各种问题,一些财务系统是必须要解决的。 本文实现了 完美修复小数计算时,计算错误、精度丢失等问题, 您可以进行任意小数的四则运算,都能保证结果是正确的。 如下图所示,使用了本文提供的方法后,可以形…

ArcGIS修改图斑时替换几何的妙用!不要只会整型要素

我们时常通过整型要素来修改要素的形状&#xff0c;但是有时候我们改变整个要素的形状、位置&#xff0c;还要保留属性不变&#xff0c;那我们就要考虑&#xff0c;高级编辑中的“替换几何”工具了。 01 替换几何原理 1 、“替换几何”工具可以为要素创建全新形状。“替换几何…

【Java】Properties类

文章目录01 初识Properties02 Properties常用方法03 Properties使用案例01 初识Properties 创建这样一个配置文件&#xff1a; 传统方法&#xff1a; public static void main(String[] args) throws IOException {//读取mysql.properties文件&#xff0c;并得到ip、user、pw…

Dubbo集群容错

Dubbo集群容错 1. 集群容错 集群调用失败时&#xff0c;Dubbo 提供的容错方案。 在集群调用失败时&#xff0c;Dubbo 提供了多种容错方案&#xff0c;缺省为 failover 重试。 各节点关系&#xff1a; 这里的 Invoker 是 Provider 的一个可调用 Service 的抽象&#xff0c;I…

n皇后(回溯)

著名的n皇后问题 即在棋盘上任意两个皇后不能在同一行&#xff0c;同一列&#xff0c;或者斜对角线&#xff0c;反斜对角线的位置 以判断&#xff08;5&#xff0c;1&#xff09;位置为例 往右下方&#xff08;斜对角线&#xff09;一连串的位置 &#xff08;5&#xff0c;1&…

Naive-UI自定义TabPane样式

前言前端开发通常使用 第三方 UI 组件库&#xff0c;像大家熟悉的 Element-UI、AntD Vue 等最近发现一个 还比较好用的 组件库 Naive-UI 传送门 &#xff0c;Vue 3 组件库&#xff0c;使用 TypeScript &#xff0c;用起来感觉还不错&#xff0c;它的主题也可以切换 &#xff08…

首款自研成像雷达发布!国产玩家赋能智能驾驶“第四类”感知

4D成像雷达赛道的“战火”正在不断升级。 高工智能汽车研究院预计&#xff0c;4D成像雷达将从2023年初开始小规模前装导入&#xff0c;预计到2024年&#xff0c;定点/搭载量有望突破百万颗&#xff0c;到2025年占全部前向毫米波雷达的比重或超过40%。 伴随着中国自动驾驶的渗…

Java多线程:多线程 Thread 类 中常用的方法的使用

Java多线程&#xff1a;多线程 Thread 类 中常用的方法的使用 每博一文案 日本有一位方丈曾在其寺庙的公告栏上写下一句标语&#xff1a; ”没有失败的人生才最失败。“ 深以为然&#xff0c;不上高山&#xff0c;不知平地&#xff0c;不经大海&#xff0c;不懂宽阔的涵义&…

很少人知道的7个极酷HTML元素

搜索很酷的HTML元素&#xff0c;尤其是当您不知道要查找什么时&#xff0c;通常就像被扔进一堆垃圾中一样动图别担心&#xff0c;我为你做了肮脏的工作&#xff01;在浏览了看似无穷无尽的HTML元素之后&#xff0c;我挖出了一些很少使用的宝石&#xff01;1. meter&progres…