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本身是可变的
 

 

posted on 2017-01-19 16:10  大大的橙子  阅读(257)  评论(0编辑  收藏  举报

导航