python 中元祖tuple的使用
Python的元组与列表类似,不同之处在于元组的元素不能修改。
元组使用小括号,列表使用方括号。
元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。
eg, tup1 = (1, 2, 3, 5, 5 )
因为元祖的元素不可改变,因此tup1[-1] =18, 试图通过这种方法修改最后一位的值时,程序会报错。
创建空元祖 tup1 =()
元组中只包含一个元素时,需要在元素后面添加逗号 tup1 = (1,)
元组与字符串类似,下标索引从0开始( 0 <= i < len(tuple) -1 ),可以进行截取,组合,查删等。
元组的操作: tuple(obj)-> 将字符串或者列表转换为元祖
, 切片
, in
, for in
,d el
, len
, max
, min
查找:
tup1 = (1, 2, 3, 4, 5, 6, 5, 8)
print(tup1[0])#第一个 -> 1
print(tup1[-2])#倒数第二个 -> 5
print(tup1[1:5])#第2-6个 -> (2, 3, 4, 5)
print(tup1[1:])#第2个开始 -> (2, 3, 4, 5, 6, 5, 8)
print(tup1[:-1])# 除了最后一个 -> (1, 2, 3, 4, 5, 6, 5)
print(tup1.count(5)) #查找5的数量 -> 2
print(tup1.count(9)) #找不到返回0 -> 0
print(tup1.index(5)) #查找5的下标,多个返回第一个 -> 4
print(tup1.index(50)) #找不到报错 -> ValueError: tuple.index(x): x not in tuple
修改(定义了一个元组之后就无法再添加或修改元组中的元素,但是可以进行拼接。)
tup1 = (12, 34.56) tup2 = ('abc', 'xyz')
tupe3 = tup1 + tup2
print(tup3) -> (12, 34.56, 'abc', 'xyz')
删除:
tup2 = (1,2,'a','jj')
print(tup2) -> (1, 2, 'a', 'jj')
del tup2
print(tup2) - > NameError: name 'tup2' is not defined
内置函数:
tup1 = (1,2,3,9,4,6)
tup2 = (1,0,'a',0)
#cmp(tup1,tup2) #比较两个元组元素。python3 这个函数没了,可以直接比较 > <
print(tup1 > tup2) # -> True
print(len(tup1)) #计算元组元素个数。 -> 6
print(max(tup1)) #返回元组中元素最大值。 -> 9
#print(min(tup2)) #返回元组中元素最小值。 -> TypeError: unorderable types: str() < int()
seq = [1,2,3,4]
print(tuple(seq)) #将列表转换为元组。 -> (1, 2, 3, 4)
print(tuple('abcds')) #将字符串转换为元祖 -> ('a', 'b', 'c', 'd', 's')