元组(tuper)
元组介绍
元组也是序列结构,但是一种不可变序列,可以简单理解为内容不可变的列表。除了在内部元素不可修改的区别外,元组和列表的用法差不多。
元组创建
创建一个元组,只要把逗号分隔的不同的数据元素使用小括号括起来即可。
tu = () 创建一个空元组
tu1 = tuple()函数类方法创建一个空元组
tu2 = tuple(可迭代的对象:比如字符串)
iterable:可迭代对象。
tuple(iterable)
注意⚠️
tu = () 是空元组
可以在()内填写可迭代对象,但是!
tu = (123)是整数形式并不是元组
tu = (123,)才是元组形式
tu = (, )是可迭代元组填写形式!!
所以要为元组形式中间一定要有英语状态下的“,”才可以。如果是中文状态下的逗号则只代表是一个逗号元素。
tuple()括号内的可迭代对象只能有一个,如果有两个会报错。
tuple([])打印结果会加个, 是为了区分元组与列表。
总结
元组创建方法一:
tu = (, ) 可以加任何数据类型,通过英语状态的逗号区分。
元组创建方法二:
tu = tuple()只能加一种可迭代参数。比如字符串或者列表,但是不能(“123”, []123)这样字符串窜➕列表的形式。
区别注意点:
- 字符串的打印
方法一:(“123”)打印结果为123【按一个整体打印】
方法二:tuple(“123”)打印结果为’1’, ‘2’, ‘3’【按元素打印】
- 列表的打印:
方法一:([123], )打印结果([123],)【打印整个列表包括形式】
方法二:tuple([123])打印结果(123,)【打印列表内容➕逗号,其中逗号是为了区分列表与元组】
- 列表➕字符串
方法一:(“123”, [123])打印结果两个类型完整内容。
方法二:tuple(“123”, [123])直接报错,只能一个可迭代参数
内容类型区别:
()的通过小逗号区分,任意数据类型都可以。
tuple只能是可迭代对象。比如整数这样不可迭代就不可以,会报错。
元组与列表相同的操作
-
使用方括号加下标访问元素
-
切片(形成新元组对象)
通过[起始位置:终止位置:步长]的切片方式 -
tuple.count() / tuple.index()
tuple.count()某个元素出现的次数
tuple.index()某个元素所在的最小位置
-
python内置函数:reversed(), sorted()
tuple元组类型只有count()/index()两种方法,但是如果需要实现元组的反转以及排序可以用python内置函数
reversed(),反转
打印结果如果是显示这样的内容需要强转。
元组就tuole强转,列表就列表强转。
sorted(),排序
返回的是列表不再是元组
- 加法及乘法
加法只是拼接
乘法只是扩展
不能元组与元组相乘,只能与整数相乘
元组不允许操作
不允许修改、新增元素
不允许删除某个元素(但是可以删除整个元组或者清空元组内容)
元组没有任何会对内部元素发生修改动作的方法,例如:remove、append、pop等方法。
只能创建新的元组,不能修改元组
不许修改仅在一级元素是元组的情况下。
这样的情况下是可以修改的。因为是在列表中修改。amy的一级元素是列表可以修改。
这里的amy一级元素是元组所以不可以修改。
元组和列表的区别
元组所消耗的内存比列表要小。
当元素不需要改变的时候推荐使用元组。
当元素需要改变的时候,推荐使用列表。
元组与列表的转换
列表转元组
li = [1, 2, 3]
tuple(li)
元组转列表
tu = (1,2,3)
list(tu)