列表屬於可變序列,可以任意修改列表中的元素。元組屬於不可變序列,不能修改元組中的
元素。因此,元組沒有增加元素、修改元素、刪除元素相關的方法。我們只需要學習元組的建立和刪除,元組中元素的訪問和計數即可。
元組支援如下操作:
索引訪問
切片操作
連線操作
成員關係操作
比較運算操作
計數:元組長度 len()、最大值 max()、最小值 min()、求和 sum()等。
通過()建立元組。小括號可以省略。
a = (10,20,30) 或者 a = 10,20,30
注:如果元組只有乙個元素,則必須後面加逗號。這是因為直譯器會把(1)
解釋為整數 1,(1,)
解釋為元組。
通過 tuple()建立元組,tuple(可迭代的物件)
b = tuple() #建立乙個空元組物件
b = tuple("abc")
b = tuple(range(3))
b = tuple([2,3,4])
元組的元素不能修改>>> a = (20,10,30,9,8)
>>> a[3]=33
traceback (most recent call last):
file "", line 1, in a[3]=33
typeerror: 'tuple' object does not support item assignment
元組的元素訪問和列表一樣,只不過返回的仍然是元組物件。>>> a = (20,10,30,9,8)
>>> a[1]
10>>> a[1:3]
(10, 30)
>>> a[:4]
(20, 10, 30, 9)
列表關於排序的方法 list.sorted()是修改原列表物件,元組沒有該方法。如果要對元組排序,只能使用內建函式 sorted(tupleobj),並生成新的列表物件。>>> a = (20,10,30,9,8)
>>> sorted(a)
[8, 9, 10, 20, 30]
zip(列表 1,列表 2,…)將多個列表對應位置的元素組合成為元組,並返回這個 zip 物件。
>>> a = [10,20,30]
>>> b = [40,50,60]
>>> c = [70,80,90]
>>> d = zip(a,b,c)
>>> list(d)
[(10, 40, 70), (20, 50, 80), (30, 60, 90)]
從形式上看,生成器推導式與列表推導式類似,只是生成器推導式使用小括號。列表推導式直接生成列表物件,生成器推導式生成的不是列表也不是元組,而是乙個生成器物件。我們可以通過生成器物件,轉化成列表或者元組。也可以使用生成器物件的__next__()方法進行遍歷,或者直接作為迭代器物件來使用。不管什麼方式使用,元素訪問結束後,如果需要重新訪問其中的元素,必須重新建立該生成器物件。
【操作】生成器的使用測試
>>> s = (x*2 for x in range(5))
>>> s
at 0x0000000002bdeb48>
>>> tuple(s)
(0, 2, 4, 6, 8)
>>> list(s) #只能訪問一次元素。第二次就為空了。需要再生成一次
>>> s
at 0x0000000002bdeb48>
>>> tuple(s)
()>>> s = (x*2 for x in range(5))
>>> s.__next__()
0>>> s.__next__()
2>>> s.__next__()
4
元組的核心特點是:不可變序列。
元組的訪問和處理速度比列表快。
與整數和字串一樣,元組可以作為字典的鍵,列表則永遠不能作為字典的鍵使用。
**於:<
Python集合常用方法及彙總
集合是無序可變,元素不能重複。實際上,集合底層是字典實現,集合的所有元素都是字典 中的 鍵物件 因此是不能重複的且唯一的。使用 建立集合物件,並使用 add 方法新增元素 a a a.add 9 a 使用 set 將列表 元組等可迭代物件轉成集合。如果原來資料存在重複資料,則只保留乙個 a a b ...
python常用方法彙總
補齊 join random.sample zyxwvutsrqponmlkjihgfedcba0123456789 11 使用bool 只能將 空字串,none,0轉為false,其它為true,所以建議使用如下方法 def str2bool v return v.lower in yes tru...
python中元組的常用方法及應用場景
1.元組常用方法 t 1 1.2 python true print t.count python 統計python在元組中的數量.count 計數器函式 print t.index python 找出元組中python元素的下標 列印結果 1 數量 2 下標 t 1,1.2,python true...