導讀:安全
1.元組函數
元組(tuple)與列表相似,不一樣之處在於元組的元素不能修改。元組寫在小括號裏,元素之間用逗號隔開。元組中的元素類型也能夠不相同:spa
>>> a = (1991, 2014, 'physics', 'math') >>> print(a, type(a), len(a)) (1991, 2014, 'physics', 'math') <class 'tuple'> 4
建立空元組:code
info_tuple = ()
元組中只包含一個元素時,須要在元素後面添加逗號:對象
info_tuple = (50, )
與字符串相似,元組能夠被索引且下標索引從0開始,也能夠進行截取/切片。其實,能夠把字符串看做一種特殊的元組。blog
>>> tup = (1, 2, 3, 4, 5, 6) >>> print(tup[0], tup[1:5]) 1 (2, 3, 4, 5) >>> tup[0] = 11 # 修改元組元素的操做是非法的
雖然tuple的元素不可改變,但它能夠包含可變的對象,好比list列表。索引
>>>a=(1,2,3,[1,2,['a','b','c']]) >>>a[3][2][1] 'b' >>>a[3][2]='4' >>>print(a) (1,2,3,[1,2,'4']) >>>a[2]='3' 報錯 >>>t = 1, 2, 3 >>>t (1, 2, 3) >>>t2 = ('a',) + t[1:] >>>t2 ('a', 2, 3) >>>(1,2) is (1,2) False
元組做爲返回值:內存
>>> def swap(x, y): x, y = y, x >>> a = 1 >>> b = 2 >>> swap(a, b) >>> print a, b 1 2
並無交換, 由於x和a是同一個值的別名, 在函數swap中改變x的值後, x和a就完全沒有任何關係了。 因此x的改變不能影響變量a。開發
在Python中若是變量具備相同的值, 就能夠認爲這些變量是同一個值的別名。 也就是這些變量指向同一個值。 這樣作的好處也許是節省了內存空間。 可是若是某一個變量改變了它本身的值, 那麼解釋器就開闢出新內存空間存儲這個變量的值。 這個變量就指向新的值。字符串
index和count與字符串和列表中的用法相同。
>>> a = ('a', 'b', 'c', 'a', 'b') >>> a.index('a', 1, 3) # 注意是左閉右開區間 Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: tuple.index(x): x not in tuple >>> a.index('a', 1, 4) 3 >>> a.count('b') 2 >>> a.count('d') 0
另外,元組也支持用+操做符:
>>> tup1, tup2 = (1, 2, 3), (4, 5, 6) >>> print(tup1+tup2) (1, 2, 3, 4, 5, 6)
# for 循環內部使用的變量 in 元組
for item in info:
循環內部針對元組元素進行操做
print(item)
在 Python 中,可使用 for 循環遍歷全部非數字型類型的變量:列表、元組、字典 以及 字符串。
儘管可使用for in遍歷元組,可是在開發中,除非 可以確認元組中的數據類型,不然針對元組的循環遍歷需求並非不少。更多的應用場景是:
1.函數的 參數 和 返回值,一個函數能夠接收 任意多個參數,或者 一次返回多個數據;
2.格式字符串,格式化字符串後面的 () 本質上就是一個元組;
3.讓列表不能夠被修改,以保護數據安全。
info = ("zhangsan", 18)
print("%s 的年齡是 %d" % info)
一、與字符串同樣,元組的元素不能修改。
二、元組也能夠被索引和切片,方法同樣。
三、注意構造包含0或1個元素的元組的特殊語法規則。
四、元組也可使用+操做符進行拼接。
五、一般,元組中保存的數據類型是不一樣的。
六、string、list和tuple都屬於sequence(序列)。