Python切片索引用法

來源:互聯網
上載者:User
這篇文章主要介紹了Python切片索引用法,結合執行個體形式詳細分析了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),左開youprint 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 = -1for i in range(-1,-len(sequence),-1):  print sequence[:i]

輸出為:

abcdeabcdabcaba

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

sequence = 'abcdef'for i in [None] + range(-1,-len(sequence),-1):  print sequence[:i]

輸出為:

abcdefabcdeabcdabcaba

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.