Python學習筆記之序列
在Python資料型別中,我們經常會接觸到這樣一種資料型別,它們的成員是有序排列的,並且能夠通過下標偏移量可以訪問它的具體的成員,這種Python型別統稱為序列,序列主要包括字串、列表和元組。
序列
序列:一種有序排列的、可以通過下標偏移量進行訪問的資料型別。下標偏移量是從0開始到總元素數-1,這種訪問形式和我們C語言中的陣列的訪問形式相同。
序列型別操作符
序列型別操作符主要分為成員關係操作符(in 、not in)、連線操作符(+)、重複操作符(*)、切片操作符([]、[:]、[::])
成員關係操作符(in、not in)
成員關係操作符主要是用來判斷一個元素是否屬於一個序列的。in/not in操作符的返回值一般來講是一個布林值False/True。滿足成員關係就返回True,否則返回False。
物件 [not] in 序列
seq = "Hello" # 字串
'H' in seq True
number = (1,2,3,4,5) # 元組
2 not in number False
連線操作符(+)
通過這個操作符,我們可以簡單地把兩個相同型別的序列連線成一個新的序列。
sequeue = sequeue1 + sequeue2
注意:這種操作雖然簡單,但是比較佔用記憶體,儘量少使用。
sequeue1 = "Hello"
sequeue2 = " Word!"
sequeue = sequeue1 + sequeue2
print sequeue
重複操作符(*)
如果我們需要一個序列的多份拷貝時,這種操作符比較有用。
sequeue * copy_num
# 使用它來做分割線
sequeue = _
sequeue = sequeue * 6
print sequeue
操作符([]、[:]、[::])
序列型別就是包含一些順序排列的物件的一個結構。我們可以使用[]加下標偏移量來訪問一個元素或者[start_index:end_index]訪問連續的幾個元素或使用[start_index:end_index:num]來間隔num個元素訪問序列。
操作符[]
使用這種操作符只能訪問一個元素。
sequeue[index]
注意:index是想要訪問元素的下標偏移量,偏移量既可以為正,也可以為負。它們的區別在於正索引以序列的開始為起點,負索引是以序列的結束為起點。在使用過程儘量避免訪問一個越界的索引,它會引發異常。
names = ['Dava','Joe','Faye','Ammy','Frakle','Talor']
print names[0]
print names[6] # 這是一個越界的索引
Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
print names[6]
IndexError: list index out of range
切片操作符[:]
當我們需要同時獲取多個元素時,操作符[]就有點力不從心了,雖然它可以實現,但是程式碼太醜陋了,所以我們就得尋找新的操作符[:]來解決問題。
sequeue[start_index:end_index]
names = ['Dava','Joe','Faye','Ammy','Frakle','Talor']
print names[2:4]
# result
['Faye','Ammy']
如果我們沒有提供任何的起始索引和結束索引,它就會訪問整個序列。
names = ['Dava','Joe','Faye','Ammy','Frakle','Talor']
# 這種方法和names[0:6]是一樣的結果
print names[:]
# result
['Dava', 'Joe', 'Faye', 'Ammy', 'Frakle', 'Talor']
如果我們只是提過起始索引或者結束索引,如果我們只提供起始索引,它會返回從起始索引到index-1的所有元素,如果我們只提供結束索引,它會返回從索引為0到結束索引的元素。
names = ['Dava','Joe','Faye','Ammy','Frakle','Talor']
# 我們只給了起始索引
print names[2:]
# result
['Faye', 'Ammy', 'Frakle', 'Talor']
# 我們只給了結束索引
print names[:3]
# result
['Dava', 'Joe', 'Faye']
切片操作符[::]
操作符[::]比操作符[:]多出來的第三個索引值是用做步長引數的,它和range()裡面的步長引數功能相似。
[start_index:end_index:num]
names = ['Dava','Joe','Faye','Ammy','Frakle','Talor']
# 隔一個取一個
print names[2:6:2]
# result
['Faye', 'Frakle']
注意:在序列的操作過程中,我們的列印結果是不包括結束索引所對應的那個元素的。切片索引的語法要比單一元素索引靈活得多,開始和結束索引值可以超過字串的長度。
相關文章
- 【學習筆記】Prufer 序列筆記
- Python 反序列化漏洞學習筆記Python筆記
- Python學習筆記|Python之程式Python筆記
- Pandas學習筆記1(序列部分)筆記
- Python學習筆記|Python之yield理解Python筆記
- Python學習筆記|Python之索引迭代Python筆記索引
- Python學習筆記|Python之特殊方法Python筆記
- Python學習筆記|Python之檔案操作Python筆記
- Python學習筆記|Python之物件導向Python筆記物件
- Python學習筆記|Python之特殊檔案Python筆記
- Python學習筆記|Python之推導式Python筆記
- Python學習筆記|Python之執行緒Python筆記執行緒
- 【學習筆記】python筆記Python
- Python學習筆記Python筆記
- Python 3 學習筆記之——物件導向Python筆記物件
- Python學習筆記|Python之pycache資料夾Python筆記
- Python學習筆記|Python之正規表示式Python筆記
- 學習筆記 過程、同義詞、序列筆記
- Python學習筆記(隨筆)Python筆記
- python筆記(一):序列Python筆記
- python反序列化學習記錄Python
- Python學習筆記015——序列(位元組陣列 bytearray)Python筆記陣列
- Python 3 學習筆記之——基礎語法Python筆記
- Python 3 學習筆記之——資料型別Python筆記資料型別
- Python 3 學習筆記之類與例項Python筆記
- python學習筆記4Python筆記
- python學習筆記(二)Python筆記
- Python學習筆記 - aiohttpPython筆記AIHTTP
- Python 學習筆記(一)Python筆記
- Python學習筆記 - asyncioPython筆記
- Python學習筆記 - queuePython筆記
- Python學習筆記(2)Python筆記
- python學習筆記(1Python筆記
- Python學習筆記(三)Python筆記
- python——numpy學習筆記Python筆記
- Effective Python學習筆記Python筆記
- Python學習筆記(一)Python筆記
- Python學習筆記(3)Python筆記