首页 > 编程语言 >Python元组tuple

Python元组tuple

时间:2024-04-08 17:56:18浏览次数:22  
标签:输出 tuple Python 元素 list 元组 print

一、元组定义

元组tuple像是一个列表list,它内部的值不可被修改。元组是一个有序的、不可变数据结构/类型

列表->元组   加锁过程

元组->列表   解锁过程

列表和元组对比 list tuple
声明 [] ()
索引 YES YES
切片 YES YES
追加元素 YES NO
修改元素 YES NO
删除元素 YES NO
基于值反查索引 YES NO
包含关系查询 YES YES

元组tuple对于大型数据处理速度优于列表list,如果你有一个常量集需要经常遍历(for),那么元组的效率优于列表

元组tuple由于其无法写入的特点,放在元组内部的数据自然就有一个"写保护",类似我们的sd卡、cf卡或者部分U盘

特别注意-1:当函数(方法)返回的数据大于一个时,一般以元组形式返回。

特别注意-2:由于元组的“写保护”模式,函数可以按照元组内部元素的位置顺序接收元组的数据 

二、元组tuple支持什么数据类型

name='正正'                          #字符串Str
age=18                                #整数Int
height=1.74                           #浮点Float
is_yes=True                           #布尔bool
pets=['狗','猫','鱼']                  #列表List
work_ctities=('北京','上海')           #元组Tuple
teacher={'姓名':'正正'}               #字典Dict

三、元组tuple的基本特性 

增加:(1)支持空元组创建

删除:(1)仅支持元组整体删除

查询:(1)支持元组数据查询(基于下标、索引、index)

(2)支持切片查询

(3)支持第一级元素长度统计(len)

四、元组tuple创建

(1)空值创建

方法一:空值创建

tuple_data1=tuple()     #空值创建 

方法二:空值创建

tuple_data2=()          #空值创建

特别方法:单个值创建 

tuple_data3=("北京",)   #单个值创建,必须要有逗号区分该类型为元组

 特别方法:多值无括弧创建

tuple_data4="北京","上海","杭州" #多值无括弧创建

 

tuple_data_all=(
    [1,2,3],
    (1,2,3),
    {'name':'mike','age':28}, #字典2
    3.14159,  #浮点 3
    100,
    '万门大学',
    True,
    False
)
print(type(tuple_data_all))
print("元组长度->",len(tuple_data_all))

输出:

<class 'tuple'>

元组长度-> 8

五、 访问元组

tuple_1=(1,'a','BMW','XFL',3)
tuple_2=(2,'b','WMB','LFX',4)
print(tuple_1)     #输出完整元组1
print(tuple_2)     #输出完整元组2
print(tuple_1[1])  #输出tuple_1的第二个元素
print(tuple_1[2:]) #输出tuple_1的第三个之后的元素
print(tuple_1[:3]) #输出tuple_1的第四个之后的元素
print(tuple_1*2)   #输出两遍tuple_1
print(tuple_1+tuple_2)   #输出tuple_1和tuple_2的混合元素
输出方法:
(1, 'a', 'BMW', 'XFL', 3)
(2, 'b', 'WMB', 'LFX', 4)
a
('BMW', 'XFL', 3)
(1, 'a', 'BMW')
(1, 'a', 'BMW', 'XFL', 3, 1, 'a', 'BMW', 'XFL', 3)
(1, 'a', 'BMW', 'XFL', 3, 2, 'b', 'WMB', 'LFX', 4)
tuple_3=(['mike',28],['Jason',36],(1,2,3),{'名字':'正正','爱好':'编程'})
print(tuple_3)
print(tuple_3[0])

特别注意:

1、元组内的每个元素(数据),遵守该数据类型的原有规则。比如字符串类型是要加引号的‘’

2、可以有多层嵌套,每一层嵌套为一个独立体存在

3、元组的"写保护"只保护一级数据,如['mike',28]是元组的一个元素,这个元素内的元素可以按照类表的方式进行增删改查操作。如果元组内还是元组,那么即为元组的规则,无法"写入"操作

tuple_3=(['mike',28],['Jason',36],(1,2,3),{'名字':'正正','爱好':'编程'})
print(tuple_3[0])
print(tuple_3[0:1])
print(tuple_3[2:])
print(tuple_3[:4])

 查询数据:

基于索引位置取数据

->tuple_3[0] 取一个为当前值的类型->['mike',28]

基于索引范围取数据

tuple_3[0:1]->(['mike', 28],) 取多个值还是一个元组

六、元组的操作

6.1 删除元组

# 删除元组
tuple_1=(['mike',28],['Jason',36],(1,2,3),{'名字':'正正','爱好':'编程'})
del tuple_1

 6.2 元组的拼接 

# 元组的拼接
tuple_2=(1,2,3)
tuple_3=(4,5,6)
new_tuple=tuple_2+tuple_3 #元组的拼接   
print(new_tuple)          #输出为(1,2,3,4,5,6)

 6.3  元组和列表转换

# 元组和列表转换
list_data1=[1,2,3]
new_tuple1=tuple(list_data1)
list_data2=[4,5,6]
new_tuple2=tuple(list_data2)
print(list_data1)        #输出为->[1, 2, 3]
print(list_data2)        #输出为->[4, 5, 6]
print(new_tuple1)        #输出为->(1, 2, 3)
print(new_tuple2)        #输出为->(4, 5, 6)
print(id(list_data1))    #输出为->139625538807680
print(id(new_tuple1))    #输出为->139625559198976
print(id(list_data2))    #输出为->139625538807424
print(id(new_tuple2))    #输出为->139625538984128

6.4 元组通过变量直接取值

# 元组通过变量直接取值
personal_info=('正正',35,'北京')
name,age,city=personal_info        #输出为->name->正正,age->35,city->北京

6.5 元组数量统计

# 元素数量统计 
message=(1,2,4,1,6,1) 
message.count(1) #输出->3

6.6 元组自身复制

# 自身复制 
numbers=(1,2) 
new_numbers=numbers*3
# 输出->(1,2,1,2,1,2) 

 6.7 元组长度输出

# 元组的长度 
num_set1=(1,2,3,4) print(len(num_set1)) #输出->4

 6.8 元组的包含关系判断 

# 包含关系判断
message=('我','爱','你')
print('爱' in message)

 6.9  切片延伸 

# 切片延伸
num=(0,1,2,3,4,5,6,7,8,9)
print(num[0:10:2])   #[起:止:步长] 输出->(0,2,4,6,8)
# 特别注意-类似我们for循环里的range()函数
print(num[::2])      #输出->(0,2,4,6,8)
# 特别注意-起止不设定默认从头到尾的范围

6.10 元组的嵌套 

matrix_list_1=(
    ('拍黄瓜','夫妻肺片','田园沙拉'),
    ('宫保鸡丁','鱼香肉丝','番茄烧鸡蛋'),
    ('冰激凌','提拉米苏','水果'),
    ('啤酒','白酒','红酒')
)
for matrix in matrix_list_1:
    for caiming in matrix:
        print(caiming,end=',') 

元组嵌套,元组中的数据不可以修改

6.11 元组中列表穿透

元组数据不可以更改但是,元组中的列表数据可以更改

# 元组和列表转换
tuple1_1=(
    [1,2,3],  #A元素0,第一级数据, 注意列表内部为第二级数据(可穿透),可以进行增删改查,遵循list规则
    28,       #B元素1,第一级数据,整数本身就不可以修改,同时整数也不是结构数据类型(不可穿透)
    (4,5,6)   #C元素2,第一级数据,元组还是沿用元组的规则,只可查不可进行其他操作
)
tuple1_1[0][1]=4
print(tuple1_1)
tuple1_1[2][0]=7

 输出结果:

如果要真正意义上的任何值不修改,那么就要保证内部数据在构建的时候尽可能全部是元组

元组更多的是查询和提取数据,如果需要大面积修改数据,尽量使用列表

6.12 元组中的内置函数

Python元组包含了以下内置函数
1、cmp(tuple1, tuple2):比较两个元组元素。
2、len(tuple):计算元组元素个数。
3、max(tuple):返回元组中元素最大值。
4、min(tuple):返回元组中元素最小值。
5、tuple(seq):将列表转换为元组。

元组可以在映射(和集合的成员)中作为键(key)使用,而列表不行

元组作为很多内建函数和方法的返回值存在

标签:输出,tuple,Python,元素,list,元组,print
From: https://www.cnblogs.com/longlyseul/p/18120853

相关文章

  • python获取指定视频分辨率并移动到相应的文件夹中-2
    importosimportshutilfrommoviepy.editorimportVideoFileClip#获取所有文件defgetAllFiles(fire_dir,houzui=".mp4"):filepath_list=[]forroot,folder_names,file_namesinos.walk(fire_dir):forfile_nameinfile_names:......
  • python获取指定视频分辨率并移动到相应的文件夹中
    importosimportshutilfrommoviepy.editorimportVideoFileClip#获取所有文件defgetAllFiles(fire_dir):filepath_list=[]forroot,folder_names,file_namesinos.walk(fire_dir):forfile_nameinfile_names:file_path=root+os......
  • python下载包过慢 pip 设置镜像
    通过修改配置文件Windows上的配置方式:打开pip.ini文件,通常位于C:\Users\YourUsername\pip\pip.ini,如果文件不存在可以创建它。在pip.ini文件中添加以下内容:[global]index-url=https://pypi.tuna.tsinghua.edu.cn/simpleLinux/macOS上的配置方式:打开或创建~/.pi......
  • linux 环境下 elasticsearch 及 python 相关库的使用
    -elasticsearch是什么?elasticsearch简称es,是一个开源的分布式搜索引擎,可以用来实现搜索、日志统计、分析、系统监控等功能。-安装1、下载官网下载地址2、解压tarzxvfelasticsearch-8.13.0-linux-x86_64.tar.gz-C/usr/local/3、解决JDK依赖问题新版本的es压缩......
  • Python大创项目参考 智能家居控制(半成品且未参赛)建议用于电气、计科、通信相关专业—
    (优质长文警告⚠️,全文包含代码共计22000+字,完整阅读时间较长)智能家居行业是指通过互联网、物联网、人工智能等先进技术将家庭设备和设施连接起来,实现智能化控制和管理的新兴产业。本项目参考了github开源“博联智能家居”,采用博联旗下鸿雁系列智能插座和路由,算是二次开发。目......
  • Python实现 时域和频域 数值演变——blog7
    数值演变是指在一定时间段内,数值发生变化或发展的过程。在数值演变过程中,数值可以增加、减少、保持稳定,甚至发生剧烈波动。数值演变可以应用于各个领域,例如经济学、生态学、物理学等。在经济学中,数值演变可以描述经济指标(如GDP、通货膨胀率、失业率等)的变化情况,帮助分析经济发......
  • python WAV音频文件处理—— (1)读写WAV文件
    https://realpython.com/python-wav-files/#visualize-audio-samples-as-a-waveform了解WAV文件格式WAV是一种波形音频文件格式(WaveformAudioFileFormat)。虽然是一种古老的格式(九十年代初开发),但今天仍然可以看到这种文件。WAV具有简单、可移植、高保真等特点。WA......
  • Python学习笔记-001
    记录一下重学python,虽然python老早就接触了,更多的还是停留在语法层面,老c++了。最近打算从头开始系统拉一下python的基础,先预计8天学完。后面还打算系统学一下Numpy,Pandas和Matplotlib。python基础教程python简介检查是否安装python,终端输入python--versionpython是一种解释......
  • python data:image/jpeg;base64为网址的图片改如何下载
    网址以data开头的文件,这里采用base64进行编码。它叫做dataURI scheme,是一种网页优化的手段。让我们直接把图像的内容崁入网页里面,减少页面的请求data:表示协议image/jpg:数据类型编码方式:base64可以通过解码的方式下载图片importbase64defdownload_auth_img(self,im......
  • Github图床 Python Typora
    1.搭建Github图床1.1.创建或者选择一个Public仓库1.2.获取GithubToken2.Typora结合图床当Typora需要使用这个图床的时候,Picgo是很好的解决方案,但是还可以通过其他的方式来进行上传,比如python脚本。2.1.upload-img.pyimportrequestsimportbase64importj......