Python的元组与列表类似,不同之处在于元组的元素不能修改,元组使用小括号,列表使用方括号,元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。
lst=['physics','chemistry',1997,2000]
tup=(1,2,3,4,5,6,"hhaha","lalla")
元组与list之间的性质很多相似,如索引/切片等,
》索引切片操作
tuple和list的操作一样,可以通过下标进行索引,[-1]表示最后一个元素。[1:3]表示下标从1到2,但不包括3.
》元组或list之间可以使用+和*,即允许进行组合连接和重复复制,运算后会生成一个新的元组或列表
tup=(1,2,3)
lst=(3,4,5)
lst=lst+lst #输出:lst=[3,4,5,3,4,5]
tup=tup*3 #输出: tup=(1,2,3,1,2,3,1,2,3)
但相对而言,tuple也具有一些自己特有的性质,具体如下,
》元组中的元素值使不允许修改的,但可以对元组进行连接组合
tup1=(12,34.56)
tup2=('abc','xyz')
tup1[0]=100 #非法操作,元组中的元素是不允许被修改的
tup3=tup1+tup2 #python运行元组进行连接组合
print(tup3)# 输出:(12,34.56,'abc','xyz')
有时会碰到这种情况,
tmp=(2,3,["x","y"])
tmp[2][0]="a"
这种形似修改了tuple的值,其实只是改变了tmp[2]指向内存块里的内容,并没有改变tmp[2]的指向,详情可参考https://www.jb51.net/article/47986.htm。
同时在元组中的元素是不允许删除的,但可以使用del语句来删除整个元组,如
tmp=(2,3,4)
del tmp
》元组的方法(元组没有列表中的增、删、改的操作,只有查的操作,以及元组间的一些操作)
——tuple.index(obj):从元组中找出某个值第一个匹配项的索引值
——tuple.count(obj): 统计某个元素在元组中出现的次数
——cmp(tup1,tup2): 比较两个元组元素
——len(tup): 返回元组中元素的个数
——max(tup): 返回元组中元素最大的值
——min(tup): 返回元组中元素最小的值
——tuple(seq): 将列表转化为元组
补:
- 任意无符号的对象,以逗号隔开,默认为元组
a=1,2,3,'hello'
print(a) #输出:(1,2,3,'hello')
- 元组中只包含一个元素时,需要在元素后面添加逗号来消除歧义
tmp=(3,)
因为括号()既可以表示tuple,又可以表示数学公式中的小括号,添加逗号是为了和(3)区分开来。
参考链接:
https://www.jb51.net/article/47986.htm(Python 元组(Tuple)操作详解)