元组Tuple
- Python的元组与列表类似,不同之处在于元组的元素不能修改。
- 元组使用小括号,列表使用方括号。
- 元组的创建
tup1 = ('physics', 'chemistry', 1997, 2000)
tup2 = (1, 2, 3, 4, 5 )
tup3 = "a", "b", "c", "d"
li = [1, 2, 3, 4]
a = tuple(li) #li必须时可迭代的
- 创建空元组
tup1 = ()
- 元组中只包含一个元素时,需要在元素后面添加逗号
tup1 = (50,)
- 元组没有append(),insert()这样的方法。其他获取元素的方法和list是一样的
- 可变的tuple
t = ('a', 'b', ['A', 'B'])
>>> t[2][0] = 'X'
>>> t[2][1] = 'Y'
>>> t
('a', 'b', ['X', 'Y'])
表面上看,tuple的元素确实变了,但其实变的不是tuple的元素,而是list的元素。tuple一开始指向的list并没有改成别的list,所以,tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。即指向’a’,就不能改成指向’b’,指向一个list,就不能改成指向其他对象,但指向的这个list本身是可变的!
- 访问元组
tup1 = ('physics', 'chemistry', 1997, 2000)
tup2 = (1, 2, 3, 4, 5, 6, 7 )
print "tup1[0]: ", tup1[0]
print "tup2[1:5]: ", tup2[1:5]
tup1[0]: physics
tup2[1:5]: (2, 3, 4, 5)
- 元组常见方法
del tup1 #删除元组
tup = ('physics', 'chemistry', 1997, 2000)
tup[2] => 1997 #按索引取值
tup[-2] => 1997 #反向读取,倒数第二个值
tup[1:] => ('chemistry', 1997, 2000) #截取
tup[-1::-1] =>(2000, 1997, 'chemistry', 'physics')
ta = (1,2,3,4,5)
print(len(ta))
print(max(ta))
print(ta.count(1))
print(ta.index(1))
>>>
5
5
1
0
# 数据交换位置
a,b = b,a