前言:
此刻同学们对“pythontuple切片”都比较注意,兄弟们都需要分析一些“pythontuple切片”的相关知识。那么小编也在网摘上网罗了一些关于“pythontuple切片””的相关内容,希望大家能喜欢,各位老铁们快快来了解一下吧!***原创不易,欢迎大家收藏关注,谢谢!!!!***
目录介绍
1. 元组的定义
元组如果只有一个元素,最后必须要添加加英文逗号
使用tuple()函数将可迭代对象转换为元组
2. 元组是不可变数据类型
3. 函数的形参*args传入实参后,args数据类型元组
4. 元组的切片
5. 元组的For循环
6. 元组的copy功能
7. 元组的合并
8. 元组的重复扩展
9. 元组的删除
10. 元组的内置count()函数
11. 元组的内置index()函数
12. 判断元素是否位于元组
Python的元组与列表类似,但元组是不可变的,意味着元组的元素一旦创建不能被修改。
元组使用小括号()表示,有以下几个特点:
元组是一个不可变的序列当元组不是空元组时,括号可以省略当元组只有一个元素时,需加逗号元素可重复元组的定义元组如果只有一个元素,最后必须要添加加英文逗号
#只有一个元素 无逗号,类型为字符串tupleB = ('color')print(type(tupleB))#打印结果<class 'str'> #只有一个元素 最后有逗号,类型为元组tupleB = ('color',)print(type(tupleB))#打印结果<class 'tuple'>使用tuple()函数将可迭代对象转换为元组转换集合
#定义一个集合number_setA = {"name","age","color"}print(tuple(number_setA))#转换结果如下("age","color","name")转换字典
#定义一个字典number_dictA = {"name":"lily","age":21,"color":"red"}#转换字典的键值为元组print(tuple(number_dictA.keys()))print(tuple(number_dictA.values()))print(tuple(number_dictA.items()))#转化结果如下('name', 'age', 'color')('lily', 21, 'red')(('name', 'lily'), ('age', 21), ('color', 'red'))转换列表
#定义一个列表number_listA = [1,2,3,4,5]print(tuple(number_listA))#转换结果如下(1, 2, 3, 4, 5)元组是不可变数据类型
#第1步:定义一个包含数字的元组number_tupleA =(1,2,3,4,5)#对元组的元素做更新操作number_tupleA[0] = 10#执行后会报错如下:Traceback (most recent call last):File "test.py", line 4, in <module>number_tupleA[0] = 10TypeError: 'tuple' object does not support item assignment函数的形参*args传入实参后,args数据类型元组
#定义一个函数,传入可变参数def number_sum(*args): #打印args的数据类型 print(f'args type :{type(args)}') #对元组参数做for循环打印 for i in args: print(i)#传入参数如下 执行函数number_sum(1,2,3,4,5)#执行结果如下:args type :<class 'tuple'>12345元组的切片
元组的元素索引以0开始,最后一个元素可以表示为-1。
如列表 tupleA = (1,2,3,4,5),以下表格是元素值和索引的关系表。
元素值
1
2
3
4
5
从前面开始的索引
1
2
3
4
从后面开始的索引
-5
-4
-3
-2
-1
tupleA = (1, 2, 3, 4, 5)#打印第1个元素print(tupleA[0])#打印结果1#打印最后1个元素print(tupleA[-1])#打印结果5#打印第2个到第3个元素,元素在切片时冒号后面的元素不包含print(tupleA[1:3])#打印结果(2, 3)#打印最后第3个元素到最后1个print(tupleA[-3:])#打印结果(3, 4, 5)#以2为步长打印元素print(tupleA[::2])#打印结果(1, 3, 5)#第1个到第4个,步长为2print(tupleA[:4:2])#打印结果(1, 3)#元组的反转顺序print(tupleA[::-1])#打印结果(5, 4, 3, 2, 1)元组的For循环循环元组内的元素
tupleA = (1, 2, 3, 4, 5)for i in tupleA: print(i)#打印结果如下12345使用len()和range()函数循环元组的index
for i in range(len(tupleA)): print(tupleA [i])#打印结果如下12345使用enumerate()函数遍历元组同时获取索引和元素
for i,data in enumerate(tupleA): print(f'索引: {i} 元素 : {data}')#打印结果如下索引: 0 元素 : 1索引: 1 元素 : 2索引: 2 元素 : 3索引: 3 元素 : 4索引: 4 元素 : 5
元组的copy功能
元组不像列表和字典,内置copy()函数;拷贝元组可以导入copy包,使用copy.copy()实现浅拷贝或者copy.deepcopy()深拷贝。但是因为元组是不可变数据,copy后的内存地址还是指向同一个对象
import copytupleA = (1, 2, 3, 4, 5)#浅拷贝tupleB= copy.copy(tupleA)#深拷贝tupleC= copy.deepcopy(tupleA)#打印内对地址print(f'tupleA 内存地址 : {id(tupleA)}')print(f'浅拷贝tupleB 内存地址 : {id(tupleB)}')print(f'深拷贝tupleC 内存地址 : {id(tupleC)}')#结果:内存地址都指向同一个对象tupleA 内存地址 : 1875134815016浅拷贝tupleB 内存地址 : 1875134815016深拷贝tupleC 内存地址 : 1875134815016元组的合并
虽然元组不能被修改,但可以使用加号+将不同的元组进行合并或者在元组中添加元素
合并元组A和B为一个新元组
tupleA = (1, 2, 3, 4, 5)tupleB = (6,7,8,9,10)tupleC = tupleA + tupleBprint(tupleC)#结果如下(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)在元组中添加元素
tupleA = (1, 2, 3, 4, 5)tupleA += (6,)print(tupleA)#结果如下(1, 2, 3, 4, 5, 6)元组的重复扩展
使用星号*扩展元组
tupleA = (1, 2, 3, 4, 5)#扩展4次tupleC = tupleA * 4print(tupleC)#打印结果(1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5)元组的删除
使用del 删除元组
tupleA = (1, 2, 3, 4, 5)del tupleAprint(tupleA)#删除后 打印不存在的变量会正常报错Traceback (most recent call last):File "D:/test.py", line 31, in <module>print(tupleA)NameError: name 'tupleA' is not defined元组的内置count()函数
使用tuple.count(xxx元素值) 统计xxx元素值在元组中出现的次数
tupleA = (1, 2, 3, 4, 5, 1, 3, 4, 3, 1)print(f'数字1 在tupleA中出现的次数 {tupleA.count(1)}')#打印结果:数字1 在tupleA中出现的次数 3元组的内置index()函数
使用tuple.index(xxx元素值) 统计xxx元素值在元组中出现的位置
tupleA = (1, 2, 3, 4, 5, 1, 3, 4, 3, 1)#1、传入数字1 默认返回第一次出现的位置print(f'数字1 在tupleA中出现的位置 {tupleA.index(1)}')#打印结果:数字1 在tupleA中出现的位置 0#2、传入数字1,并从第2个切片位置开始到第6个切片位置结束,统计数字1出现的位置print(f'数字1 在tupleA中出现的位置 {tupleA.index(1,2,6)}')#打印结果:数字1 在tupleA中出现的位置 5#3、传入数字1,并从第6个切片位置开始到最后,统计数字1出现的位置print(f'数字1 在tupleA中出现的位置 {tupleA.index(1,6)}')#打印结果:数字1 在tupleA中出现的位置 9判断元素是否位于元组
使用in 或者 not in 判断
tupleA = (1, 2, 3, 4, 5, 1, 3, 4, 3, 1)print(1 in tupleA)#打印结果Trueprint(2 not in tupleA)#打印结果False
共勉: 东汉·班固《汉书·枚乘传》:“泰山之管穿石,单极之绠断干。水非石之钻,索非木之锯,渐靡使之然也。”
-----指水滴不断地滴,可以滴穿石头;
-----比喻坚持不懈,集细微的力量也能成就难能的功劳。
标签: #pythontuple切片 #python取元组