Pyhton基础学习系列10——元组

发布时间:2023年12月28日


一、元组是什么?

  1. 元组是容器型数据类型,将()作为容器的标志里面多个元素用逗号隔开:(数据1, 数据2, 数据3,…)
  2. 基本与列表相同,唯一不同是列表是可变的数据类型,元组是不可变的数据类型,不支持增删改操作
  3. 元组是有序的数据类型,支持索引操作
  4. 任何类型的数据都可以作为元组的元素
  5. 元组的处理速度要比列表快。(不可变的数据类型处理速度都比可变的类型数据快)

二、元组的使用方法

1.创建

  • 与列表的创建相似只不过一个是 [ ] 一个是 ( )
# 1)空元组
t1 = ()
print(t1,type(t1))
# () <class 'tuple'>

# 2)只有一个元素的元组: 在唯一的元素后面必须有一个逗号
t2 = (100,)
print(t2, type(t2))
# (100,) <class 'tuple'>
# 没有逗号就会默认为()为运算符代表一个整体
t2 = (100)
print(t2, type(t2))
# 100 <class 'int'>

# 3)在没有歧义的情况下,元组的小括号可以省略(所谓到的歧义就是不做任何计算的情况,有括号和没括号计算出来的情况不一样)
t3 = 10, 20, 30*2
print(t3)       # (10, 20, 60)

t4 = (10, 20, 30)*2
print(t4)       # (10, 20, 30, 10, 20, 30)

t5 = 10, 20, 30  
print(t5)	# (10, 20, 30)


# 4)元组是有序的
print((10, 20, 30) == (20, 10, 30))     # False

2.查操作

  • 元组获取元素的方式和列表获取元素的方式一样并且也支持切片操作index查找下标等操作
weeks = ('周一', '周二', '周三', '周四', '周五', '周六', '周天')
print(weeks.index('周一'), weeks[-1], weeks[2])
# 0 周天 周三
print(weeks[1:-1:2])
# ('周二', '周四', '周六')
print(weeks[1:-1:-1])
# ()

3. 通过多变量获取元素 - 所有有序容器都支持

  • 让变量的个数和序列中元素的个数保持一致
t1 = (10, 20, 30)
x, y, z = t1
# 效果等同于 x, y, z = 10, 20, 30
print(x, y, z)
# 10 20 30

c1, c2, c3 = 'abc'
print(c1, c2, c3)
# a b c
  • 当变量的个数小于序列中元素的个数的时候必须在其中某一个变量的前面加*
  • 解释:当一个序列中的元素有N个,变量有M个,同时M<N,如果要存元素就得在其中一个变量中加*号,不然会报错
# 假设有weeks = ('周一', '周二', '周三', '周四', '周五', '周六', '周天')7个元素,如果我要存元素
# 先看带星号的变量,如果在最后那前面的变量就分别代表着第一个开始的元素,直到全部变量都一一对应存完,如果星号在最前面则与之相反。
# 带星号的变量存储剩下的所有元素。
# 如果星号在中间,那左右两边的变量就代表着刚开始和结束的元素。

# 星号在最后
x, y, *z = weeks
print(x)
# 周一
print(y)
# 周二
print(z)
# ['周三', '周四', '周五', '周六', '周天']

# 星号在中间
weeks = ('周一', '周二', '周三', '周四', '周五', '周六', '周天')
x, *y, z = weeks
print(x)
# 周一
print(y)
# ['周二', '周三', '周四', '周五', '周六']
print(z)
# 周天

# 星号在最左边
weeks = ('周一', '周二', '周三', '周四', '周五', '周六', '周天')
*x, y, z = weeks
print(x)
# ['周一', '周二', '周三', '周四', '周五']
print(y)
# 周六
print(z)
# 周天

4. 相关操作、函数和方法

  • 列表中所有和可变无关操作、函数和方法元组都支持
  • 元组排序完以后返回的是列表数据类型
t1 = (10, 2, 30)
t2 = (100, 200)
print(t1 + t2)
# (10, 2, 30, 100, 200)
print(t1 * 3)
# (10, 2, 30, 10, 2, 30, 10, 2, 30)
print(t1 > t2)
# False
print(10 in t1)
# True
print(sum(t1))
# 42
print(max(t1), min(t1))
# 30 2
print(sorted(t1))
# [2, 10, 30]
print(type(sorted(t1)))
# <class 'list'>

总结

元组本质上和列表没有区别,两个都是容器型类型数据,一个是不可变的数据类型,一个是可变的类型数据,基本列表能做的操作,元组也可以,只要不涉及到增删改。

文章来源:https://blog.csdn.net/qq_49771146/article/details/135251879
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。