元组tuple,也是一种sequence特性的类型,也可以存储任何数据类型的数据对象,跟列表相似,元组不能在原处修改。元组不支持任何方法调用,但是元组具有列表的大多数属性。
但是要记住的是:元组的不可变性只适用于元组本身,并非其内容。例如元组内部的列表是可以像往常一样修改的。
在下表中,如果元组中只有一个元素,必须要在最后面加上逗号。
在元组中也可以包含列表,或者元组作为元素。
a = (1)
这个就是数字1。
a = (1)
print(type(a))

可以看到该变量的数据类型是整形。
元组的sequence操作:切片操作。
和列表不同,元组对象的内容是不可变化的。
a = (1, 2, 3.14, 'hello', [7,8,9])
a[0] = '你好'

tuple对象,元组对象不支持元素复制。
判断元素是否在列表中或元组中,成员关系:
我们需要检查列表、元组对象中是否存储我们想要找的元素,我们通过in这个关键字。
list1 = [1,2,3,4, 'hello']
tuple1 = (1,2,3,4, 'hello')
if 'hello' in list1:
print('hello 在列表中存在')
if 'boy' not in tuple1:
print('boy 在元组中不存在')
多个变量同时赋值:
可以把列表或者元组中的元素直接赋值给变量。
x, y = (1, 2)
print(x, y)
name, age = ['zhangfei', 33]
print(name, age)
这个时候需要注意的是:变量的个数一定要和列表/元素中的元素个数相等。
函数返回列表或者元组:
函数的返回值可以是一个列表或者元组对象。
def func1():
age = input("Please input age: ")
gender = input("Please input gender: ")
return [age, gender]
age, gender = func1()
print(age, gender)

也可以放在元组中,甚至括号也可以去掉。
def func1():
age = input("Please input age: ")
gender = input("Please input gender: ")
return age, gender
age, gender = func1()
print(age, gender)
元组常量和运算:
| 运算 | 功能 |
| () | 空元组 |
| T(0,) | 1个元素的元组 |
| T(0, 'Ni', 1.2, 3) | 四个元素的元组 |
| T = ('abc', ('def', 'ghi')) | 嵌套元组 |
| T = Tuple('spam') | 一个可迭代对象的项的元组 |
| T[i] | 索引 |
| T[i][j] | 索引的索引 |
| T[i:j] | 切片 |
| len(T) | 元组长度 |
| T1 + T2 | 合并 |
| T * 3 | 重复 |
| for i in T: print(i) | 迭代 |
| ‘spam’ in T | 成员关系 |
| [x ** 2 for x in T] | |
| T.index('Ni') | 搜索 |
| T.count('Ni') | 计数 |
例子:对元组进行排序:
# 方法一
T = ('cc', 'aa', 'dd', 'bb')
tmp = list(T)
tmp.sort()
print(tmp)
T = tuple(tmp)
print(T)
# 方法二
T = ('cc', 'aa', 'dd', 'bb')
print(tuple(sorted(T)))
然后我们看看sorted函数的解释:

Return a new list containing all items from the iterable in ascending order.
返回一个列表,该列表中包含所有的可迭代的元素,按升序排列。
sorted这个函数。
本文介绍了Python中元组的基本概念和使用方法,包括元组的创建、不可变性、切片操作及成员关系判断等。此外还讲解了如何利用元组进行变量赋值、函数返回值的处理,并给出了排序示例。
1108

被折叠的 条评论
为什么被折叠?



