元組 tuple
列表屬於可變序列,可以任意修改列表中的元素。元組屬於不可變序列,不能修改元組中的元素。因此,元組沒有增加元素、修改元素、刪除元素相關的方法。
因此,我們只需要學習元組的建立和刪除,元組中元素的訪問和計數即可。元組支援如下操作:
1.索引訪問
2.切片操作
3.連線操作
4.成員關係操作
5.比較運算操作
6.計數:元組長度 len()、最大值 max()、最小值 min()、求和 sum()等。
元組的建立
1.通過()建立元組。小括號可以省略。
a = (10,20,30) 或者 a = 10,20,30
如果元組只有乙個元素,則必須後面加逗號。這是因為直譯器會把(1)解釋為整數 1,(1,) 解釋為元組。
>>
> a =(1
)>>
>
type
(a)<
class
'int'
>
>>
> a =(1
,)#或者 a = 1,
>>
>
type
(a)<
class
'tuple'
>
2.通過 tuple()建立元組
tuple(可迭代的物件) 例如:
b = tuple() #建立乙個空元組物件
b = tuple(「abc」)
b = tuple(range(3))
b = tuple([2,3,4])
總結:
tuple()可以接收列表、字串、其他序列型別、迭代器等生成元組。
list()可以接收元組、字串、其他序列型別、迭代器等生成列表。
元組的元素訪問和計數
1.元組的元素不能修改
>>
> a =(20
,10,30
,9,8
)>>
> a[3]
=33traceback (most recent call last)
:file ""
, line 1,in
a[3]
=33typeerror:
'tuple'
object does not support item assignment
2.元組的元素訪問和列表一樣,只不過返回的仍然是元組物件。
>>
> a =(20
,10,30
,9,8
)>>
> a[1]
10>>
> a[1:
3](10
,30)>>
> a[:4
](20,
10,30,
9)
3.列表關於排序的方法 list.sorted()是修改原列表物件,元組沒有該方法。如果要對元組排序,只能使用內建函式 sorted(tupleobj),並生成新的列表物件。
>>
> a =(20
,10,30
,9,8
)>>
>
sorted
(a)[8,
9,10,
20,30]
>>
> a=(10
,20)>>
> b=(30
,40)>>
> a+b(10
,20,30
,40)
zip
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
元組總結
1.元組的核心特點是:不可變序列。
2.元組的訪問和處理速度比列表快。
3.與整數和字串一樣,元組可以作為字典的鍵,列表則永遠不能作為字典的鍵使用。
二 2 1Python列表 元組和字典
列表 index 符合條件的list下標 l a b c d e 1,2,3 print l.index c 執行結果 2 insert 符合條件的list下標 l a b c d e 1,2,3 l.insert 2,12306 print l 執行結果 a b 12306 c d e 1,2,3...
2 1 Python 檔案方法
python open 方法用於開啟乙個檔案,並返回檔案物件,在對檔案進行處理過程都需要使用到這個函式,如果該檔案無法被開啟,會丟擲 oserror。注意 使用 open 方法一定要保證關閉檔案物件,即呼叫 close 方法。open 函式常用形式是接收兩個引數 檔名 file 和模式 mode o...
2 1Python之類和例項
類 class 是乙個使用者自定義型別,開發者可以將其實例化以獲得例項 instance 例項表示這種型別的物件。在python中,類就是物件,開發者可以像對其他物件那樣處理函式,可以在呼叫函式時傳遞乙個類作為引數,也可以返回乙個類作為函式呼叫的結果。任何物件,即使是乙個類物件,都有乙個型別。在py...