元组 (tuple)
元组是不可以改变的序列。同list一样,元组可以存放任意类型的值
表示方法:
用小括号() 括起来,单个元素括起来后加逗号(,)来区分表达式分组还是元组
创建空元组
t = () # t绑定空元组
创建非空元组:
t = 200,
t = (20,)
t = (1, 2, 3)
t = 100, 200, 300
t = (1, "two", 3, 'four')
元组的构造(创建)函数
tuple() 生成一个空元组,等同于 ()
tuple(iterable) 用可迭代对象生成一个元组
示例:
t = tuple() # 空元组
t = tuple('ABC') # t = ('A', 'B', 'C')
t = tuple([1,2,3,4]) # t = (1,2,3,4)
问题:
请问哪儿些变量绑定的是元组
t = 20
t1 = (20)
t2 = (1 + 20)
t3 = (30, ) # t3 是元组
x, y, z = 100, 200, 300
x, y, z = (100, 200, 300)
x, y, z = [100, 200, 300]
x, y, z = [100, 200, (300, 400)]
x, y, z = "ABC"
元组的算术运算:
- += * *=
示例:
t = (1,2,3) + (4,5,6) # t = (1,2,3,4,5,6)
t += (7,)
t += 8,
- *= 略过
元组的比较运算:
< <= > >= == !=
示例:
(1, 2, 3) != (4,5,6) # True
(1,2,3) < (1,4,3) # True
(2, 3, 1) > (1, 2, 3) # True
说明:
比较规则等同于字符串和列表的比较规则
in / not in 运算符
等同于列表和字符串中的in/not in 运算符
用来判断一个值是否存在于元组中
索引 index
用法等同于字符串的索引
元组不能索引赋值
示例:
t = (1, 2, "3.0")
print(t[0])
print(t[2])
t[2] = 3.0 # 错的!!!!
切片 slice
用法等同于字符的切片
元组不能切片赋值
- 元组的切片返回一个新的元组
示例:
x = (1,2,3,4,5,6,7,8)
y = x[::2] # y = (1,3,5,7)
元组的方法:
T.index() 返回对应元素的下标,当value不存在时,触发ValueError的错误
T.count(x) 返回列表中元素的个数
能用于序列的函数总结:
len(x) 返回序列长度
max(x) 返回序列中最大值的元素
min(x) 返回.......小 .....
sum(x) 返回序列中所有元素的和
any(x) 真值测试...
all(x) 真值测试...
str(obj) 将对象obj转为字符串
list(iterable) 用可迭代对象生成列表
tuple(iterable) .............元组