寫給小白的Python之008:數據類型之元組

導讀:安全

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中若是變量具備相同的值, 就能夠認爲這些變量是同一個值的別名。 也就是這些變量指向同一個值。 這樣作的好處也許是節省了內存空間。 可是若是某一個變量改變了它本身的值, 那麼解釋器就開闢出新內存空間存儲這個變量的值。 這個變量就指向新的值。字符串

 

元組的內置函數count, index

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(序列)。

相關文章
相關標籤/搜索