Python tuple()内置函数 --返回一个元组对象

内置函数 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:])
# 从第0个元素提取到第一个元素(不含)
print(tuple[:1])
# 从第一个元素提取到第三个元素(不含)
print(tuple[1:3])

'''输出
('君问归期未有期', '巴山夜雨涨秋池', '何当共剪西窗烛', '却话巴山夜雨时')
('巴山夜雨涨秋池', '何当共剪西窗烛', '却话巴山夜雨时')
('君问归期未有期',)
('巴山夜雨涨秋池', '何当共剪西窗烛')
'''

上列截取列表元素的操作叫作 切片 ,得到的还是一个 元组

口诀: 左右空,取到头;左要取,右不取

冒号左边空,就要从偏移量为0的元素开始取;右边空,就要取到列表的最后一个元素
冒号左边数字对应的元素要拿,右边的不拿