内置函数 tuple()
返回一个元组对象,元组
是一个不可变序列,其中的项是可变序列(列表或字典)除外
创建元组的方式
空元组
1 2 3 4 5 6 7
| a = () print(type(a))
'''输出 <class 'tuple'> '''
|
单元组
使用后缀英文逗号
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| a = 'p', b = ('p',)
c = 1, 2, 3 d = (1, 2, 3)
print(type(a)) print(type(b)) print(type(c)) print(type(d))
'''输出 <class 'tuple'> <class 'tuple'> <class 'tuple'> <class 'tuple'> '''
|
决定生成元组的其实是 英文逗号
而不是 圆括号
, 圆括号
只是可选的,生成空元组或需要避免语法歧义的情况除外
类型构造器tuple()
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| a = 'abc' b = ['a', 'b', 'c'] c = ('a', 'b', 'c') d = {'a': 1, 'b': 2, 'c': 3}
print(tuple(a)) print(tuple(b)) print(tuple(c)) print(tuple(d))
print(type(tuple(a))) print(type(tuple(b))) print(type(tuple(c))) print(type(tuple(d)))
'''输出 ('a', 'b', 'c') ('a', 'b', 'c') ('a', 'b', 'c') ('a', 'b', 'c') <class 'tuple'> <class 'tuple'> <class 'tuple'> <class 'tuple'> '''
|
元组推导式
推导式结合tuple()快速生成数字元组(0,1,2,3)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| a = (x for x in range(4)) print(a) print(type(a))
print(tuple(a)) print(type(tuple(a)))
'''输出 <generator object <genexpr> at 0x0000025DCB2E1900> <class 'generator'> (0, 1, 2, 3) <class 'tuple'> '''
|
元组操作
提取某个值
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| tuple = ( '君问归期未有期', '巴山夜雨涨秋池', '何当共剪西窗烛', '却话巴山夜雨时' )
print(tuple[0]) print(tuple[1]) print(tuple[2]) print(tuple[3])
'''输出 君问归期未有期 巴山夜雨涨秋池 何当共剪西窗烛 却话巴山夜雨时 '''
|
提取多个值
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| tuple = ( '君问归期未有期', '巴山夜雨涨秋池', '何当共剪西窗烛', '却话巴山夜雨时' )
print(tuple[:])
print(tuple[1:])
print(tuple[:1])
print(tuple[1:3])
'''输出 ('君问归期未有期', '巴山夜雨涨秋池', '何当共剪西窗烛', '却话巴山夜雨时') ('巴山夜雨涨秋池', '何当共剪西窗烛', '却话巴山夜雨时') ('君问归期未有期',) ('巴山夜雨涨秋池', '何当共剪西窗烛') '''
|
上列截取列表元素的操作叫作 切片
,得到的还是一个 元组
口诀: 左右空,取到头;左要取,右不取
冒号左边空,就要从偏移量为0的元素开始取;右边空,就要取到列表的最后一个元素
冒号左边数字对应的元素要拿,右边的不拿