Python 的元组与列表类似,不同之处在于元组的元素不能修改。元组使用小括号 ( ),列表使用方括号 [ ]。元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。
注意: 元组是不可改变的,列表是可改变的。
元组的特点:
# 提示:括号不是必须的,当使用元组时请一定要加上括号。
tup01 = ()
print(type(tup01)) #
tup02 = tuple()
print(type(tup02)) #
tup03 = "a", "b", "c"
print(type(tup03)) #
# 无组的类型可以是多样的
tup04 = ("abc", 1234, [1, 2, 3, 4])
print(type(tup04)) #
# 元组和字符串以及列表类似,索引都是从0开始,并且可以进行截取和组合等操作。
tup05 = ("CentOS", "Ubuntu", "Mac", "Windows", "Redhat")
print(tup05[2]) # Mac
print(tup05[1:4]) # ('Ubuntu', 'Mac', 'Windows')
# 元组虽然不可以改变,但是可以对两个元组进行合并
tup06 = ("a", "b", "c")
tup07 = (1, 2, 3)
tup08 = tup06 + tup07
print(tup08) # ("a", "b", "c", 1, 2, 3)
tup09 = ("Jack", "Tom", "Peter", "Lily", "lucy")
del tup09
print(tup09) # NameError: name "tup09" is not defind
# 元组是不可变,但是我们可以通过使用内置方法来操作元组。
len(tuple):计算元组元素个数;
max(tuple):返回元组中元素的最大值;
min(tuple):返回元组中元素的最小值;
tuple(seq):将列表转换为元组。
什么叫元组拆包?
将元组内的元素,依次分配赋值给变量。
python允许将一个包含N个元素的元组分别分配给n个变量。变量数要与无组的数量相同。
# 1、直接赋值。适合元素较少的情况
tup10 = ("Jack", 20)
name, age = tup10
print(name, age) # Jack 20
# 使用占位符_。适合元素较少的情况
tup11 = ("Jack", 20, "male")
name, age, _ = tup11
print(name, age) # Jack 20
# 使用*变量。适合元素较多的情况
a, b, *c, d = range(1, 10)
print(a, b, c, d) # 1 2 [3, 4, 5, 6, 7, 8] 9
# *c是个列表,如果没有足够的值,就会返回一个空列表
# *前缀变量能放在任意位置
元组拆包交换两个变量的值
# 不用拆包的方法来写
a = 10
b = 20
tmp = a
a = b
b = tmp
print(a, b) # 20 10
# 使用元组拆包来交换变量的值
b, a = a, b
print(a, b) # 20 10
# 使用in判断元素是否在元组中
tup11 = ("Jack", "Tom", "Alix", "Lucy", "Peter", "Lily")
print("Alix" in tup11) # True
print("Ali" in tup11) # False