㈠ python中使用負數索引的切片
Python中的序列是可以採用負數的索引來訪問的,其范圍是 -1 到序列的負長度,也就是
-len(sequence) <= index <= -1,負索引以序列的結束為起點。
除了提供按照索引,訪問序列中的單個元素,Python也提供了切片的方式訪問序列中的子序列的方式,這就是切片的訪問方式,其一般語法如下:
sequence[starting_index:ending_index]
如此,我們會得到從starting_index對應元素開始,到ending_index對應元素結束,但是不包括ending_index對應元素,所組成的子序列的內容。
起止索引都是可選的選項,如果沒有提供或者為None,那麼開始索引默認為0,結束索引默認為序列最末尾的索引。切片的訪問模式,有第三個值,類似於步長,其訪問類似下面代碼。
(1)python的切片語法擴展閱讀
python的索引:
索引的基本格式
變數名[x]--索引為x的值;
變數名[i,j]--索引從i到j-1的值;
索引值(從左往右)從0開始,到N-1結束(有始無終);
索引值(從右往左)從-1開始,到-N結束。
索引的其他特點:可嵌套性。
由於高級數據類型具有可嵌套性,所以索引也具有可嵌套性。其格式為:
變數[index_1][……][index_n]
執行方向:從左向右依次執行。
㈡ 求助帖,關於Python的切片
取一個list的部分元素是非常常見的操作。比如,一個list如下:
>>> L = ['Adam', 'Lisa', 'Bart', 'Paul']
取前3個元素,應該怎麼做?
對這種經常取指定索引范圍的操作,用循環十分繁瑣,因此,Python提供了切片(Slice)操作符,能大大簡化這種操作。
對應上面的問題,取前3個元素,用一行代碼就可以完成切片:
>>> L[0:3]
['Adam', 'Lisa', 'Bart']
L[0:3]表示,從索引0開始取,直到索引3為止,但不包括索引3。即索引0,1,2,正好是3個元素。
只用一個 : ,表示從頭到尾:
>>> L[:]
['Adam', 'Lisa', 'Bart', 'Paul']
因此,L[:]實際上復制出了一個新list。
切片操作還可以指定第三個參數:
>>> L[::2]
['Adam', 'Bart']
第三個參數表示每N個取一個,上面的 L[::2] 會每兩個元素取出一個來,也就是隔一個取一個。
把list換成tuple,切片操作完全相同,只是切片的結果也變成了tuple。
㈢ python切片的一些問題
name = "1234567890"
print(name)
print(name[::-2])#倒序,每兩個取一個。
print(name[4:1:-2]) #從4倒序到1,每兩個取一個。
print(name[8:1:-2]) #從8倒序到1,每兩個取一個。
str[0:3] #截取第一位到第三位的字元
str[:] #截取字元串的全部字元
str[6:] #截取第七個字元到結尾
str[:-3] #截取從頭開始到倒數第三個字元之前
str[2] #截取第三個字元
str[-1] #截取倒數第一個字元
str[::-1] #創造一個與原字元串順序相反的字元串
str[-3:-1] #截取倒數第三位與倒數第一位之前的字元
str[-3:] #截取倒數第三位到結尾
str[:-5:-3] #逆序截取
㈣ Python spit用法
Python split()方法
Python 字元串
描述
Python split()通過指定分隔符對字元串進行切片,如果參數num 有指定值,則僅分隔 num 個子字元串
語法
split()方法語法:
str.split(str="", num=string.count(str)).
參數
str -- 分隔符,默認為所有的空字元,包括空格、換行(\n)、製表符(\t)等。
num -- 分割次數。
返回值
返回分割後的字元串列表。
實例
以下實例展示了split()函數的使用方法:
#!/usr/bin/python
str = "Line1-abcdef \nLine2-abc \nLine4-abcd";
print str.split( );
print str.split(' ', 1 );
以上實例輸出結果如下:
['Line1-abcdef', 'Line2-abc', 'Line4-abcd']
['Line1-abcdef', '\nLine2-abc \nLine4-abcd']
㈤ python中slice數據類型是什麼樣子的,可否舉例說明。
python 的切片語法傳入 __getitem__ 的參數有兩種, 第一種是普通整數或對象, 也就是直接寫 t[0], t['abc'] 這樣, 第二種是切片, 即 t[0: 1], t[:: -1] 這種. 對於後者, 實際參數 i 的類型將是一個 slice 對象.
代碼示例
classTest(object):
def__init__(self):
self.tokens=[]
def__getitem__(self,i):
ifisinstance(i,slice):
print'Sliceobject:',i
returnself.tokens[i.start:i.stop]
else:
print'Integer:',i
returnself.tokens[i]
t=Test()
t.tokens=range(10)
t[0]
t[1:2]
㈥ 如何使用Python中的變數對列表進行切片
只需使用兩個變數:
i, j = 2, 4a[i:j]
如果真的需要是一個單一的變數,你可以使用一個元組。
㈦ python str【0:-2:2】的意思是
這是python的切片的用法,一般語法是:起始下標:終止下標:間隔,其中包括起始下標的元素,但不包括終止下標的元素。下標從左往右算的話是從0開始計數,第一個元素的下標是0,第二個的是1,以此類推;而從右往左依次是-1,-2,以此類推,即最後一個元素的下標記為-1,倒數第二個元素的下標記為-2,等等。題中的切片是從下標0(即第一個元素開始,包括這個元素),間隔為2,到倒數第二個元素結束(不包括這個元素)。
比如:
s="1234567890x"
p=s[0:-2:2]
切片後的p是"13579",同時s的值不變依然是"1234567890x"。
下面是一個例子:
s="1234567890x"
p=s[0:-2:2]
print(s)
print(p)
㈧ Python中列表/字元串切片slice
s='0123456789'
s[::-1]:表示將s倒序排列
s[::-2]:表示將s倒序排列並且步長是2
s[::-3]:表示將s倒序排列並且步長是3
s[:2:-1]:表示將s倒序排列,並且到s的第2個元素就結束
s[1:2:-1]:表示將s倒序排列,並且從第一個元素開始,第二個元素結束
s[-1:-5:-2]:表示將s倒序排列步長為2,也就是'97531'。然後是從s的-1個元素位置開始,也就是9。到s的-5個元素結束,也就是5,但不包括5。最後的結果也就是'97'
㈨ Python中切片獲取問題
rfind是string的內置函數,意思是從右端(right)開始查找。返回結果為三種:-1,0,正整數。其中-1表示未找到;0和正整數都表示找到,其值表示所在位置。
問題中fname是一個string。從右端開始查找是否有'.'這個符號。if dot==-1:部分是說,如果未找到,則返回空字元串(string):""。