Python中关于元组(tuple)的基本操作
1.元组的定义
- 元组的概念:与列表相似,都是元素的集合,不同点是元组中的元素不能直接修改
#定义空元组
a=()
b=tuple()
#定义普通元组(任意数据类型都可以)
c=(1, 3, 4.5, "gesag", True)
- 注意:定义的元组只有一个元素时,要注意逗号,若没有逗号,会定义为整形
d=(1) #没有逗号时
type(d)
d=(1,) #加了逗号
type(d)
输出结果为:
<class 'int'>
<class 'tuple'>
2.元组的访问与切片
(1)访问
- 访问格式:元组名称[索引]
支持负索引
(1.1)普通索引
c[0]
c[2]
输出结果为:
1
4.5
(1.2)负索引(最后一位元素索引为-1,倒数第二位元素索引为-2,以此类推…)
c[-1]
c[-3]
c[-5]
输出结果为:
True
4.5
1
(2)切片
- 切片概念:通过元组切片去访问元组中的某一个片段的元素集合
- 切片格式:元组名称[start:stop:step]
start:起始索引
stop:结束索引
step:步长、间隔长度(可以不指定,默认为1)
c
c[0:4]
c[:4] #start可以不写,默认为0,即从头开始
c[:] #当只写一个":"时,重新复制原元组,生成一个新元组
c[:5:2]
c[::2] #stop可以不写,默认为元组末尾
输出结果为:
(1, 3, 4.5, "gesag", True)
(1, 3, 4.5, "gesag")
(1, 3, 4.5, "gesag")
(1, 3, 4.5, "gesag", True)
(1, 4.5, True)
(1, 4.5, True)
3.元组的运算操作
(1)+
- 概念:+即为元组拼接(不对原元组进行改变)
a=(11, 22, 33)
b=(44, 55, 66)
a+b
输出结果为:
(11, 22, 33, 44, 55, 66)
(2)*
- 概念:*即为元组重复(不对原元组进行改变)
a*2
输出结果为:
(11, 22, 33, 11, 22, 33)
(3)in
- 概念:检测 in 前的元素是否在 in 后的集合中,存在返回True,不存在返回False
11 in a
45 in a
45 not in a
输出结果为:
True
False
True
(4)迭代
- 概念:相当于遍历
for i in a:
print(i)
输出结果为:
11
22
33
4.元组函数
函数名 | 作用 |
---|---|
len( ) | 返回元组中元素的个数 |
min( ) | 返回元组中最小的一个元素值 |
max( ) | 返回元组中最大的一个元素值 |
len(a)
min(a)
max(a)
输出结果为:
扫描二维码关注公众号,回复:
11388786 查看本文章
3
11
33
5.元组方法
方法 | 功能 |
---|---|
T.index(value) | 从左到右查找指定元素在元组中的索引并返回 |
T.count(value) | 统计某个元素在元组中出现的次数 |
测试用例(1)
a=(11, 22, 33, 44, 55)
a.index(22)
a.index(55)
1
4
测试用例(2)
a.count(33)
1
6.元组修改
- 元组中的元素不能直接进行修改,但可以间接修改
(1)直接修改
a=(11, 22, 33)
a[1]=55
输出结果为:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
(2)间接修改
tt=list(a) #1.先将元组转换成列表
tt
tt[1]=55 #2.在列表中进行想要执行的操作
tt
aa=tuple(tt) #3.将修改好后的列表转换为元组
aa
输出结果为:
[11, 22, 33]
[11, 55, 33]
(11, 55, 33)