概述
元组是一种不能够修改的数据结构,也是一组元素的集合。元组和列表类似,也有自己的索引,也可以切片,也支持遍历。但是元组是不支持修改的,长度一旦定义,就不会变化。
在特殊情况下,元组的元素是可以修改的,但是一般很少这么操作。
定义元组
创建元组的方法有好多种,常见的如下:
-
使用 tuple
方法定义空元组 -
使用 (元素,)
定义一个元素的元组,注意,这里的逗号不能省略 -
使用 (元素1,元素2,元素3...)
定义多个元素的元组 -
使用 tuple
方法将其他类型转换为元组
示例:定义元组
# 使用`tuple`方法定义空元组
t1 = tuple()
print(t1, type(t1))
# 使用`(元素,)`定义一个元素的元组,注意,这里的逗号不能省略
t2 = (22,)
print(t2, type(t2))
# 使用`(元素1,元素2,元素3...)`定义多个元素的元组
t3=(11,22,33)
print(t3, type(t3))
# 使用`tuple`方法将其他类型转换为元组
t4=tuple("abc")
print(t4, type(t4))
输出结果:
() <class 'tuple'>
(22,) <class 'tuple'>
(11, 22, 33) <class 'tuple'>
('a', 'b', 'c') <class 'tuple'>
元组的索引
元组和字符串以及列表一样,也有自己的索引。可以通过索引取值,特殊情况下可以修改值,也可以用来遍历元组。
示例:元组的索引
# 02元组的索引.py
t = ("1","2","3","4","5","6","7","8","9")
print(t)
# 取值
print(t[3])
# 遍历
for i in t:
print(i, end=" ")
print()
# 通过下标遍历
i=0
while i < len(t):
print(t[i], end=" ")
i += 1
print()
输出结果:
('1', '2', '3', '4', '5', '6', '7', '8', '9')
4
1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9
查找元素的索引
可以通过index
方法,查找元素在元组中的索引。
示例:查找元素的索引
# 03查找元素的索引.py
t = list(range(10))
print(t)
# 查找元素的索引
print(t.index(3))
输出结果:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
3
统计某元素的出现次数
使用count
方法,可以统计一个元素在元组中出现的次数。
示例:统计元素的个数
# 04统计元素的个数.py
arr = list(range(3))
print(arr)
# 重复3次
arr *=3
print(arr)
# 转换为元组
t = tuple(arr)
print(t)
# 查询2出现的次数
print(arr.count(2))
print(t.count(2))
输出结果:
[0, 1, 2]
[0, 1, 2, 0, 1, 2, 0, 1, 2]
(0, 1, 2, 0, 1, 2, 0, 1, 2)
3
3
获取元组的元素个数
使用len
方法可以获取元组的元素个数。len
是一个公共方法,可以获取多种序列类型的元素个数。
示例:获取元组的元素个数
# 05获取元组的元素个数.py
t1 = tuple()
print(t1,len(t1))
t2 = tuple(range(10))
print(t2,len(t2))
输出结果:
() 0
(0, 1, 2, 3, 4, 5, 6, 7, 8, 9) 10
元组的修改
元组本身是不能修改的,但是元组的元素如果是可以修改的,那么我们可以修改元组的元素。
比如,如果元组是由一组变量组成的,那么我们可以修改元组中这些变量的值。
示例:元组的修改
# 06元组的修改.py
a = "11"
b = 22
c = 33
# 列表
arr = [a,b,c]
# 元组
t = (arr,111,222,333)
print(t,type(t))
# 修改变量,同时会修改元组的元素
arr[1]=121
print(t,type(t))
输出结果:
(['11', 22, 33], 111, 222, 333) <class 'tuple'>
(['11', 121, 33], 111, 222, 333) <class 'tuple'>
函数的返回值是元组
在真实的开发中,元组也有很多自己的使用场景。
比如,如果一个函数有多个返回值,那么,这些返回值默认会以元组的形式返回。
示例:函数的返回值是元组
# 07函数的返回值是元组.py
def add():
# 返回多个值,会被自动封装为元组
return 1,2,3
# 调用函数,获取结果
t = add()
# 查看结果和结果的类型
print(t, type(t))
输出结果:
(1, 2, 3) <class 'tuple'>
函数的可变参数是元素
函数有一种特殊的参数*args
,用来传递任意多个参数,实际上这种类型的参数是一个元组。
示例:可变参数是元组
# 08可变参数是元组.py
# 使用可变参数
def add(*args):
# 查看类型
print(args, type(args))
return sum(args)
# 调用
r = add(1,2,3,4,5,6,7,8,9,10)
print(r, type(r))
输出结果:
(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) <class 'tuple'>
55 <class 'int'>
元组也可以嵌套
如果是一个固定的二维数组,实际上是可以用元组表示的,因为元素是不可变长度的类型,而且元组支持嵌套。
示例:元组的嵌套
# 09元组的嵌套.py
# 方法1,直接定义
t1 = (
(1,2,3),
(1,2,3),
(1,2,3),
)
print(t1, type(t1))
# 方法2,列表转元组
arr = [list(range(i,i+3)) for i in range(1,3)]
t2 = tuple(arr)
print(t2,type(t2))
输出结果:
((1, 2, 3), (1, 2, 3), (1, 2, 3)) <class 'tuple'>
([1, 2, 3], [2, 3, 4]) <class 'tuple'>
元组的元素可以是任意类型
理论上,元组的元素可以是任意类型,不过一般建议是同一种类型。
示例:元组的元素类型
# 10元组的元素类型.py
t = (1,1.2,"a",True,False,[12,13],range(3),{"a":11,"b":22},{1,2,3})
print(t,type(t))
输出结果:
(1, 1.2, 'a', True, False, [12, 13], range(0, 3), {'a': 11, 'b': 22}, {1, 2, 3}) <class 'tuple'>
原文始发于微信公众号(张大鹏520):Python基础语法08 元组
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/48651.html