赞
踩
元组是有序且不可更改的集合
使用圆括号()直接创建元组
- thistuple = ("apple", "banana", "cherry")
- # ('apple', 'banana', 'cherry')
- print(thistuple)
使用tuple()构造函数创建元组
- aList = [1,2,3,4]
- print(tuple(aList)) # (1, 2, 3, 4)
-
- Astr = "Hello"
- print(tuple(Astr)) # ('H', 'e', 'l', 'l', 'o')
-
- # 针对字典,会返回字典的key组成的tuple
- aDict = {'name':'Andy','age':18}
- print(tuple(aDict)) # ('name', 'age')
-
- # 针对元组,会返回元组自身
- aTuple = (1,2,3,4,5)
- print(tuple(aTuple)) # (1, 2, 3, 4, 5)
-
- # 将区间转换成元组
- range1 = range(1, 6)
- print(tuple(range1)) # (1, 2, 3, 4, 5)
从存储内容上看,元组可以存储整数、实数、字符串、列表、元组等任何类型的数据,并且在同一个元组中,元素的类型可以不同,例如:
- aTuple = ("https://www.csdn.net", 1, [2,'a'], ("abc",3.0))
- # ('https://www.csdn.net', 1, [2, 'a'], ('abc', 3.0))
- print(aTuple)
定义一个空的元组
- test1 = ()
- print(test1) # ()
- test2 = tuple()
- print(test2) # ()
定义只有一个元素的元组
- # 注意test1不是元组,test2是元组
- test1 = (1)
- type(test1) # int
-
- test2 = (1,)
- print(test2) # (1,)
- type(test2) # tuple
-
- aList = [1]
- print(tuple(aList)) # (1,)
Python的元组与列表类似,不同之处在于元组的元素不能修改,元组tuple一旦初始化就不能修改
元组也可以看做是不可变的列表,通常情况下,元组用于保存无需修改的内容
- # 无法向元组添加元素
- thistuple = ("apple", "banana", "cherry")
- # TypeError: 'tuple' object does not support item assignment
- thistuple[3] = "orange" # 引发错误
- print(thistuple)
元组中的所有元素都是有编号的,即我们所说的索引值,从0开始递增
我们可以使用索引来获取元组中的元素
- thistuple = ("Andy", "Odin", "Summer", "Lee", "Jack", "Harry", "Rita")
- print(thistuple[0]) # Andy
- print(thistuple[2]) # Summer
- print(thistuple[4]) # Jack
- print(thistuple[-1]) # Rita
除了使用索引访问单个元素外,我们还可以使用切片(slicing)来访问特定范围内的元素
- thistuple = ("Andy", "Odin", "Summer", "Lee", "Jack", "Harry", "Rita")
- print(thistuple[2:5]) # ('Summer', 'Lee', 'Jack')
- print(thistuple[-4:-1]) # ('Lee', 'Jack', 'Harry')
扩展补充资料
Python切片操作https://blog.csdn.net/Hudas/article/details/125905111
len(tuple)可用于获取元组长度
注明:tuple代表元组
- thistuple = ("Andy", "Odin", "Summer")
- print(len(thistuple)) # 3
运算符in可用于检查特定的值是否包含在元组tuple中,包含在内则返回True,不包含在内则返回False
- thistuple = ("Andy", "Odin", "Summer")
- print('Andy' in thistuple) # True
- print('Rita' in thistuple) # False
扩展:not in判断指定元素是否不在元组tuple中
- thistuple = ("Andy", "Odin", "Summer")
- print('Andy' not in thistuple) # False
- print('Rita' not in thistuple) # True
如需要连接两个或多个元组,可以使用+运算符
- tuple1 = ('a', 'b' , 'c')
- tuple2 = (1, 2, 3)
- tuple3 = tuple1 + tuple2
- # ('a', 'b', 'c', 1, 2, 3)
- print(tuple3)
count()用于返回元组中指定值出现的次数
- thistuple = (1, 3, 7, 8, 7, 5, 4, 5, 8, 5)
- num = thistuple.count(5)
- print(num) # 3
index()用于在元组中搜索指定的值并返回它被找到的位置
注意:返回的是查找指定值第一次出现的位置(索引值),如果未找到该值,index()将引发异常
语法格式
tuple.index(value)
- thistuple = (1, 3, 7, 8, 7, 5, 4, 6, 8, 5)
- res = thistuple.index(8)
- print(res) # 3
我们无法删除元组中的元素,但可以完全删除元组
del关键字可以完全删除元组
- thistuple = ("apple", "banana", "cherry")
- del thistuple
- # 这会引发错误,因为元组已不存在
- # NameError: name 'thistuple' is not defined
- print(thistuple)
创建元组后,我们将无法更改其值(元组是不可变的,或者也称为恒定的),但是有一种解决方法可以进行更改元组值
思路:首先可以将元组先转换为列表,然后更改列表中的值,最后将列表转换回元组
- fruits = ("apple", "banana", "cherry")
- list_fruits = list(fruits)
- list_fruits[1] = "kiwi"
- fruits = tuple(list_fruits)
- print(fruits) # ('apple', 'kiwi', 'cherry')
- # (1, 1, 1, 1, 1)
- print((1,) * 5)
- # (1, 2, 1, 2, 1, 2)
- print((1,2) * 3)
max(tuple)用于返回元组中元素最大值
min(tuple)用于返回元组中元素最小值
- nums = (1,3,5,7,9)
- print(max(nums)) # 9
- print(min(nums)) # 1
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。