首頁 >後端開發 >Python教學 >Python切片索引用法

Python切片索引用法

不言
不言原創
2018-06-04 18:00:022524瀏覽

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

本文實例講述了Python切片索引用法。分享給大家供大家參考,具體如下:

在Python中,可以用用簡單的方括號加一個下標的方式存取序列的每一個元素,這種方式稱之為切片運算符,切片運算子有三種形式:

[][:][ ::]

存取某一資料元素的語法如下:

sequence[index]

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

#由於Python是物件導向的,所以也可以透過在序列後面直接加上一個索引進行訪問,如下所以

print (&#39;a&#39;,&#39;b&#39;,&#39;c&#39;,&#39;d&#39;)[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(&#39;c&#39;)

這裡要注意的是重複運算子*

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, &#39;xyz&#39;, &#39;zara&#39;, &#39;abc&#39;, 123];
bList = [2009, &#39;manni&#39;];
aList.extend(bList)
print "Extended List : ", aList ;

輸出為:

Extended List :  [123, &#39;xyz&#39;, &#39;zara&#39;, &#39;abc&#39;, 123, 2009, &#39;manni&#39;]

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

##

print (&#39;Faye&#39;,&#39;Leanna&#39;,&#39;Daylen&#39;)[-100:100]

輸出為:

(&#39;Faye&#39;, &#39;Leanna&#39;, &#39;Daylen&#39;)

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

sequence = &#39;abcdef&#39;
i = -1
for i in range(-1,-len(sequence),-1):
  print sequence[:i]

輸出為:

abcde
abcd
abc
ab
a

發現沒有顯示第一個,即是沒有顯示完整的字串,除開另外單獨定義一個

sequence[:0]

,這裡使用None作為索引值

sequence = &#39;abcdef&#39;
for i in [None] + range(-1,-len(sequence),-1):
  print sequence[:i]

輸出為:

abcdef
abcde
abcd
abc
ab
a

#################### ##################

以上是Python切片索引用法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn