2.3元组(tuple)
元组与列表类似,同属于序列,不同之处在于元组的元素无法修改,元组使用小括号。注意:任意无符号的对象,以逗号隔开,默认为元组。
2.3.1创建元组
创建空元组:tul=();
创建单元素元组:tul=(50,); 注意:需要在元素后边添加逗号
2.3.2访问元组
tup(index):访问对应索引位置的元素
>>> tup
(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
>>> tup[3]
3
for in in tup:
print i 遍历迭代,顺序访问元组中每一个元素
2.3.3元组删除(del tup)
元组中的元素不允许删除,但是可以用del删除整个元组
>>> tup=(1,2)
>>> del tup
>>> tup
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'tup' is not defined
>>>
2.3.4元组运算(“+”;”*”)
元组中的元素是不允许修改的,但是与列表一样,元组可以使用”+”和”*”进行运算
tup1+tup2:将tup1和tup2中的元素组合到一起生成一个新的元组
>>> tup1=(1,2,3)
>>> tup2=(4,5,6)
>>> tup1+tup2
(1, 2, 3, 4, 5, 6)
>>> tup1
(1, 2, 3)
>>> tup2
(4, 5, 6)
>>>
tup1*(num):将tup1中的元素复制num次存入新元组中
>>> tup=(1,2)
>>> tup1=tup*3
>>> tup1
(1, 2, 1, 2, 1, 2)
>>> tup
(1, 2)
2.3.5元组切片
sequence[a:b:c]:可以对字符串、元组、列表等序列进行切片操作,其中a,b,c为三个非必填的参数,a表示操作的起始索引位置,b表示操作的终止索引位置,c代表步长;c的默认值为1
a=(0,1,2,3,4,5,6,7,8,9)
a[0]è0
a[0:3]è(0,1,2)
a[3:]è(3,4,5,6,7,8,9)
a[:3]è(0,1,2)
a[0:10:2]è(0,2,4,6,8)
a[::-1]è(9,8,7,6,5,4,3,2,1,0)
a[-1:]è(9,)
a[:-1]è(0,1,2,3,4,5,6,7,8) #从第一个元素开始取值,取到倒数第一个元素,等价于a[0:-1]
a[-2:-8:-2] è(8, 6, 4) #从倒数第二个数8开始取值,取到倒数第八个数2,步长为-2(倒着每隔两个元素取一个)
a[-2:-8:2] è()
2.3.5元组内置函数
cmp(tuple1,tuple2):比较两个元组元素,从第一个元素(ascii)开始比较,如果第一个元素相同,则比较第二个元素,以此类推,如果tuple1大,则返回1;如果tuple2大,则返回-1;如果两个元组相同则返回0
>>> cmp((1,2,3),(3,2))
-1
>>> cmp(("a","1"),("4",6,7))
1
>>> cmp((1,2,3),(1,2,3))
0
>>>
max(tuple)和min(tuple):返回元组中的最大元素和最小元素
>>> a
(1, 2, 2, 3, 2, 3, 4, 5)
>>> max(a)
5
>>> min(a)
1
>>>
len(tuple):计算元组中元素个数
>>> a
(1, 2, 2, 3, 2, 3, 4, 5)
>>> len(a)
8
>>>
tuple.count(element):返回tuple中指定元素出现的次数
>>> a
(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
>>> a.count(2)
1
>>>
tuple.index(element):返回指定元素在元组中第一次出现时的索引位置,如果元素不存在会报错:ValueError: tuple.index(x): x not in tuple
>>> a=(1,2,2,3,2,3,4,5)
>>> a.index(2)
1
>>> a.index(9)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: tuple.index(x): x not in tuple
>>>