tuple
元组是有序的且不可更改的集合。
元组和列表一样支持索引
创建元组
# 定义一个元组,元组元素之间使用,隔开的
t = 1,2,3
print(t)
print(t[0])
(1, 2, 3)
1
t = ('h')
# type()可以输出对象的类型
print(type(t))
t = (2)
print(type(t))
<class 'str'>
<class 'int'>
# 可以看到上面俩个元组赋值,得到的结果并不是tuple
# 当元组只有一个元素时,应用以下方式赋值(增加一个,)
t = ('a',)
print(type(t))
<class 'tuple'>
使用tuple()内置函数创建元组
# 使用tuple()可创建空的元组
t = tuple()
print(t)
()
# 使用tuple(iterable)创建元组
# iterable是一个可迭代对象
t = tuple("hello world")
print(t)
('h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd')
元组访问
- 下标访问
t = ('a','b','c','d','f')
print(t[1])
print(t[0])
b
a
- 切片访问
t = ('a','b','c','d','f')
print(t[2:4])
print(t[1::2])
('c', 'd')
('b', 'd')
- 修改元组元素
# 元组本身是不可以被修改的
t = ('a','b','c','d','f')
# t[0] = '5' typeError:'tuple' object does not support item assignme
# 先将其转换为列表
t = list(t)
t[0] = '5'
# 修改值后将其转换为元组
t = tuple(t)
print(t)
('5', 'b', 'c', 'd', 'f')
元组操作
元组实现了一般序列的操作
# 判断元素x在元组t内
print('g' in t)
print('a' in t)
False
True
# 判断元素x不在元组t内返回True
print('g' not in t)
print('a' not in t)
True
False
# 元组拼接
t = ('a','c','b')
t = t + ('1','2','3')
print(t)
t = t * 3
print(t)
('a', 'c', 'b', '1', '2', '3')
('a', 'c', 'b', '1', '2', '3', 'a', 'c', 'b', '1', '2', '3', 'a', 'c', 'b', '1', '2', '3')
# 元组的长度
print(len(t))
18
# 元组的最小项
print(min(t))
1
# 元组的最大项
print(max(t))
c
# 元素x在元组t首次出现的位置
print(t.index('1'))
# 6是起始位置,19是终止位置
print(t.index('1',6,19))
3
9
# 元素x在元组t中出现的次数
print(t.count('2'))
print(t.count('4'))
3
0
# 比较运算 <, >, ==
t1 = tuple("12345")
print(t > t1)
print(t < t1)
print(t == t1)
True
False
False
元组交换
# 元组交换可不用中间变量
print('交换前...')
print('t = {}'.format(t))
print('t1 = {}'.format(t1))
t,t1 = t1,t
print('交换后...')
print('t = {}'.format(t))
print('t1 = {}'.format(t1))
交换前...
t = ('5', 'b', 'c', 'd', 'f')
t1 = ('1', '2', '3', '4', '5')
交换后...
t = ('1', '2', '3', '4', '5')
t1 = ('5', 'b', 'c', 'd', 'f')
元组作为函数返回值
# 内置函数divmod()就会返回一个元组返回值
print(type(divmod(5,2)))
print(divmod(5,2))
<class 'tuple'>
(2, 1)
# 自动以接口,返回指定系列的长度、最小值、最大值
def len_min_max(t):
return len(t),min(t),max(t)
print(len_min_max(t))
(5, '1', '5')