元祖(不可变序列):组(tuple) 是一种不可变的有序集合,意味着一旦创建后就不能再修改。元组使用圆括号 () 来表示,元素之间用逗号分隔。即使元组只包含一个元素,也需要在该元素后面加上一个逗号以区别于普通的括号表达式。
1、创建元祖的2种方式:
# 创建元祖的2中方式:
# 第一种创建方式,使用()小括号
t = ('python', 'hello', 30)
print(t) # (结果为('python', 'hello', 30))
print(type(t)) # (结果为<class 'tuple'>)
t = 'python', 'hello', 30
print('---------------')
print(t) # (结果为('python', 'hello', 30))
print(type(t)) # (结果为<class 'tuple'>)
print('---------------')
# 第二种创建方式,使用内置函数tuple((A,B,C))
t1 = tuple(('python', 'hello', 30))
print(t1) # (结果为('python', 'hello', 30))
print(type(t1)) # (结果为<class 'tuple'>)
2、空元组:
t1 = ()
print('空元组=', t1)
t2 = tuple()
print('空元组=', t2)
3、元祖的不可修改性和修改性:
t = (10, [20, 30], 9)
t2 = (10, 20, 30, 9)
print(t) # (结果为(10, [20, 30], 9))
print(t[1]) # 指的是t[1]索引为2的值(结果为[20, 30])
# t[0]=2#不能修改元祖内的元素,否则会报错TypeError: 'tuple' object does not support item assignment
# print(t[0])
t[1].append(10) # 可以修改元祖里面的列表元素内的元素
print(t[1]) # (结果为[20, 30, 10])
print(t) # (结果为(10, [20, 30, 10], 9))
t[1].append(10) # 可以修改元祖里面的列表元素内的元素
print(t[1]) # (结果为[20, 30, 10])
print(t) # (结果为(10, [20, 30, 10], 9))
print(10 in t) # (结果为True)
print(10 not in t) # (结果为False)
print(max(t2)) # (结果为30)
print(min(t2)) # (结果为9)
print(len(t)) # (结果为3)
print(t.index(10)) # 寻找索引(结果为0)
print(t.count(10)) # 计算出现的次数(结果为1)
# 如果元组中只有一个元素
t = (10)
print(t, type(t)) # (结果为10 <class 'int'>)
# 如果元组中只有一个元素,且需要代表是元组类型,逗号不能省略
j = (10,)
print(j, type(j)) # (结果为(10,) <class 'tuple'>)
del t # 删除元组
# print(t) # 删除之后再打印就会报错
4、元祖的遍历:
t = (10, [20, 30], 9)
for item in t:
if item != 9:
print(item, end='\t') # (结果为10 [20, 30] 9 )
else:
print(item)
print('----------')
for item in range(0, len(t)):
print(item) # (结果为0 1 2 )
print('----------')
# 使用enumerate()
for index, item in enumerate(t):
print(index, '--->', item) # (结果为0 ---> 10 1 ---> [20, 30] 2 ---> 9)
print('----------')
for index, item in enumerate(t, start=11): # 从序号11开始
print(index, '--->', item) # (结果为11 ---> 10 12 ---> [20, 30] 13 ---> 9)
5、元组的生成式:
t = (i for i in range(1, 4))
print(t) # 生成器对象(结果为<generator object <genexpr> at 0x000001B154AD41C0>)
# t2 = tuple(t) # 需要转元祖类型才能输出
# print(t2) # (结果为(1, 2, 3))
# for item in t2:
# print(item) # (结果为1 2 3)
print(t.__next__()) # 若转了就tuple取不出来。取了之后就没有了 (结果为1)
print(t.__next__()) # 若转了就tuple取不出来。取数 (结果为2)
print(t.__next__()) # 若转了就tuple取不出来。取数 (结果为3)
总结:
要是觉得对您有帮助,最后别忘了请点赞收藏加关注哦!