元组是不可变的
创建元组
通过小括号()创建元组,注意的是当定义中只有一个元素时不构成元组
t = ('a','b','c')
print(t)
t2 =('a')
type (t2) # str
# tuple 内置函数
str = 'tuple'
lst = [1,2,4,5,2,9,3]
t1 = tuple(lst)
t2 = tuple(str)
print(t1,t2) # ('t','u','p','l','e') (1, 2, 4, 5, 2, 9, 3)
查看和搜索
#可以通过切片的方式对元组进行搜索
t = tuple('hello python') #('h', 'e', 'l', 'l', 'o', ' ', 'p', 'y', 't', 'h', 'o', 'n')
t[0] # 'h'
t[1:3]
t[:-1]
不可变 数据类型
# 因为元组是不可变数据类型,因此不能对它进行变更操作
t = ('a','b','c')
t[0] = 'A' #错误
# 但是可以通过新建元组的方式进行变更
t = tuple('hello python')
t = ('H',) + t[1:]
print(t)
比较 两个元组:从第一个元组进行比较,如果值相等到下一个元素。
(0, 1, 2) < (0, 3, 4) # True
(0, 1, 2000000) < (0, 3, 4) # True
元组赋值
- 很多语言需要的更换变量的值
“=”号左边是变量组成的元组,右边为表达式组成的元组。但两侧数量一定要相等。
# 常规更换变量的值的代码
t = a
a = b
b = t
# 但是通过元组可以更优雅的进行转换
a , b = b , a
# 两侧数量必须一致
a, b = 1,2,3 # wrong
#
address = '222222223@qq.com'
e_name , e_domain = address.split('@')
print(e_domain,e_name)
元组当作返回值
一般来说,函数只能返回一个值,但是如果返回值是元组,效果就等于返回多个返回值。
def min_max(t):
return min(t),max(t)
lst = [1,2,4,5,2,9,3]
num_min , num_max = min_max(lst)
print(num_min,num_max)