python切片的作用 Python切片索引用法

2021-10-19 20:45:48 字數 2486 閱讀 6147

這篇文章主要介紹了python切片索引用法,結合例項形式詳細分析了python切片索引的常見使用方法與操作注意事項,需要的朋友可以參考下

在python中,可以用用簡單的方括號加乙個下標的方式訪問序列的每乙個元素,這種方式稱之為切片操作符,切片操作符有三種形式:

訪問某一資料元素的語法如下:

sequence[index]

sequence是序列的名字,index是訪問元素的對應的偏移量,為正數,0<=index<=len(sequence)-1;使用負索引的時候,其範圍為-len(sequence) <=index <= -1

由於python是物件導向的,所以也可以通過在序列後直接加上乙個索引進行訪問,如下所以

print ('a','b','c','d')[2]

對於訪問多個元素的情形

sequence[starting_index:ending_index]

下面就訪問的幾種方式進行舉例說明:

sequence="abcdefgh"

print len(sequence) #顯示序列長度

print sequence #列印完整序列

print sequence[:]

print sequence[2:3] #切片顯示,不指定步長預設為1,指定了步長(這裡是setp為2)按照步長進行顯示

print sequence[1:6:2]

print sequence[3] #元素訪問

print sequence[0:3] #從首元素開始訪問,訪問區間為[0,3),左開you

print sequence[:3]

print sequence[2:8] #從第二個元素一直訪問到最後乙個元素

print sequence[2:]

print sequence[::-1] #從最後乙個元素開始訪問,逆序訪問,可以視為「翻轉」操作

print max(sequence)

print min(sequence)

print sequence.index('c')

這裡要注意的是重複操作符 *

sequence * copies_int

當需要乙個序列的多個拷貝時,重複操作符就可以發揮作用了,copies_int 必須為整形

print sequence*3 #使用重複操作符

連線操作符 +

sequence1 + sequence2

允許使用 + 將兩個相同型別的序列進行連線

print sequence + sequence

但注意看起來很方便,但是這種操作不是最快或者最有效地,對字串來說,這個操作不如把所有子字串放到乙個列表中或者可迭代物件中,然後使用join()方法來把所有的內容連線在一起節約記憶體;而對於列表而言,推薦是喲個列表型別的extend()方法來把兩個或者多個列表物件合併

str.join(sequence) #方法用於將序列中的元素以指定的字元連線生成乙個新的字串

str = "-";

seq = ("a", "b", "c"); # 字串序列

print str.join( seq );

輸出為:a-b-c

list.extend(seq) #函式用於在列表末尾一次性追加另乙個序列中的多個值(用新列表擴充套件原來的列表)

alist = [123, 'xyz', 'zara', 'abc', 123];

blist = [2009, 'manni'];

alist.extend(blist)

print "extended list : ", alist ;

輸出為:extended list : [123, 'xyz', 'zara', 'abc', 123, 2009, 'manni']

切片索引的語法要比簡單的單一元素索引方法靈活很多,開始和結束索引值可以超過字串的長度。即起始索引值可以小於0,而結束索引值可以大於序列的長度,如:

print ('faye','leanna','daylen')[-100:100]

輸出為:('faye', 'leanna', 'daylen')

如果有乙個字串,想通過迴圈按照這樣的方式進行顯示:每次都把位於最後的那乙個字元砍掉,如何實現呢?

sequence = 'abcdef'

i = -1

for i in range(-1,-len(sequence),-1):

print sequence[:i]

輸出為:abcde

abcd

abcab

a發現沒有顯示第乙個,即是沒有顯示完整的字串,除開另外單獨定義乙個sequence[:0],這裡使用none作為索引值

sequence = 'abcdef'

for i in [none] + range(-1,-len(sequence),-1):

print sequence[:i]

輸出為:abcdef

abcde

abcd

abcab

a

python 切片 Python 列表切片

想必很多人都使用過列表的切片,通過切片可以從列表中獲取乙個或多個元素,但你真的了解切片?一 一般玩法 name a b c d e f g h name 0 2 獲取 0 2 中間的元素,不包括索引為 2 的元素 a b name 2 從 0 開始切,可省略 0 a b name 1 同樣地,切到最...

python切片的物件 Python切片物件和

python中是否存在某種內部機制,它以不同的方式處理傳遞給 getitem 的引數,並自動將start stop step構造轉換為片?在 這是我的意思class exampleclass object def getitem self,args return args def call self...

pythonint切片 python 切片

切片 list取值的一種方式,在ist中取多個值時,就叫切片 lis list range 1,21 print lis print lis 0 11 print lis 0 11 2 print lis 1 lists 於萍 李夢 王春武 李丹利 for name in lists print n...