Python tuple
Python的元组与列表类似,不同之处在于元组的元素不能修改
Basic operations
tuple1=(1,2,"a") tuple1 tuple2=1,2,3,"a","b","c" tuple2 #元组中只包含一个元素时,需要在元素后面添加逗号 tuple3=(1) type(tuple3) int tuple4=(1,) type(tuple4) tuple tuple1[0] tuple1[-1] tuple1[1:3] #元组中的元素值是不允许修改的,但我们可以对元组进行连接组合 tuple3=tuple1+tuple2 tuple3 #元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组 del tuple3 #元组运算符 len((1,2,"a")) (1,2)+("a","b") ("Python",)*2 "a" in (1,2,"a","b") for i in (1,2,3): print i #任意无符号的对象,以逗号隔开,默认为元组 (x1,x2)=(1,2) print x1,x2
函数
cmp(tuple1, tuple2) return
如果比较的元素是同类型的,则比较其值,返回结果。
如果两个元素不是同一种类型,则检查它们是否是数字。
- 如果是数字,执行必要的数字强制类型转换,然后比较。
- 如果有一方的元素是数字,则另一方的元素"大"(数字是"最小的")
- 否则,通过类型名字的字母顺序进行比较。
如果有一个列表首先到达末尾,则另一个长一点的列表"大"。
如果我们用尽了两个列表的元素而且所 有元素都是相等的,那么结果就是个平局,就是说返回一个 0
tuple1,tuple2=(1,2,"xyz"),(3,4,"abc") cmp(tuple1,tuple2) -1 cmp(tuple2,tuple1) 1 tuple3=tuple2+(5,6) cmp(tuple2,tuple3) -1
len(tuple1) return 元组元素个数
len(tuple1)
3
max(tuple) return 元组中元素最大值
max(tuple1) 'xyz'
min(tuple) return 元组中元素最小值
min(tuple1)
1
tuple( seq ) return 元组
tuple([1,2,3]) (1, 2, 3) tuple({"a":1,"b":2}) ('a', 'b')
使用:
因为tuple不可变,所以代码更安全.
"可变"的tuple
t1=(1,2,["A","B"]) t1[2][0]="X" t1[2][1]="Y" t1 (1, 2, ['X', 'Y'])
表面上看,tuple的元素确实变了,但其实变的不是tuple的元素,而是list的元素。tuple一开始指向的list并没有改成别的list,所以,tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。即指向'a',就不能改成指向'b',指向一个list,就不能改成指向其他对象,但指向的这个list本身是可变的