龙空技术网

测开不得不会的python之元组tuple

科雷软件测试 147

前言:

此刻同学们对“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取元组