我是一个python元组。或许有人这样评价为:我是一个戴上了加锁的列表。
定义
Python的元组与列表类似,同样可通过索引访问,支持异构,任意嵌套。不同之处在于元组的元素不能修改。元组使用小括号,列表使用方括号。
元组和数组或者列表有一个很大的区别:
元组是一种不可改变的类型。元组是一诺千金的。如果你创建了一个元组,里面的元素就别想改变他了。
类似于java中的字符串不可改变!元组也是如此!
一个 Python 初学者的普遍疑问:列表与元组的区别是什么?
答案是:它们之间有两点不同,并且二者之间有着复杂的相互作用。它们分别是”技术上”的差异和“文化上”的差异。
首先,有一点是相同的:
列表与元组都是容器,是一系列的对象。
二者都可以包含任意类型的元素甚至可以是一个序列,还可以包含元素的顺序(不像集合和字典)。
现在来讲讲区别。列表和元组的“技术差异”是,列表是可变的,而元组是不可变的。这是在 Python 语言中二者唯一的差别。
列表有一个 append() 的方法来添加更多的元素,而元组却没有这个方法:
元组并不需要一个 append()方法,因为元组不能修改。如果强制调用这个方法,则就会爬出异常。
我和元组兄弟一样,倍数乘法迭代
我们一样的用法
1、逻辑操作符
2、关系操作符
3、成员操作仿
4、比较操作符
tuple没有
append
extend
remove
pop
等增删改操作
tuple没有find
接下来做个总结吧
1.元组是以圆括号“()”包围的数据集合,不同成员以“,”分隔。通过下标进行访问
2.不可变序列,可以看做不可变的列表,与列表不同:元组中数据一旦确立就不能改变(所以没有类似列表的增删改操作,只有基本序列操作)
3.支持任意类型,任意嵌套以及常见的序列操作
4.元组通常用在使语句或用户定义的函数能够安全地采用一组值的时候,即被使用的元组的值不会改变
t = () #空元组
t =(1,) #单个元素元组,注意逗号必须
t =(1,2,3)
1 in t #判断
2 not in t
#其他同序列基本操作:分片,索引
print t[0]
print t[-1]
print t[:2]
#不会对原来元组造成影响
print t+(4,5) #返回新元组(1,2,3,4,5)
print t * 2 #(1,2,3,1,2,3)
t.index(1)
t.count(1)
#列表元组转换
l = [1,2,3]
lt = tuple(l)
tl = list(lt)
lt_sorted = sorted(l) #对元组进行排序,返回是列表
#字符串转元组(得到字符元组序列)
print tuple('hello) #('h','e','l','l','o')
元组定义易错点
一个和多个的区别是定义1个后面必须有”,”否则就是 类型 “str”
元组的优势
1.性能
tuple比列表操作速度快
若需要定义一个常量集,或者是只读序列,唯一的操作是不断遍历之,使用tuple代替list
2.不可变性
对不需要的数据进行“写保护”,使代码更加安全