Python 列表的切片操作符使用

2021-07-09 22:06:17 字數 2544 閱讀 4070

**:

說明:

切片操作符在python中的原型是

[start:stop:step]

即:[開始索引:結束索引:步長值]

開始索引:同其它語言一樣,從0開始。序列從左向右方向中,第乙個值的索引為0,最後乙個為-1

結束索引:切片操作符將取到該索引為止,不包含該索引的值

步長值:預設是乙個接著乙個切取,如果為2,則表示進行隔一取一操作。步長值為正時表示從左向右取,如果為負,則表示從右向左取。步長值不能為0

li = [1,2,3,4,5,6,7]

print li[1:]           #輸出[2,3,4,5,6,7],省略終止索引,表示取起始索引之後的所有值,等效於li[1:len(li)]

print li[:3]           #輸出[1,2,3],省略起始索引,表示從0開始取,等效於li[0:3]

print li[:]            #輸出[1,2,3,4,5,6,7],省略起始索引、終止索引、步長值表示取全部,等效於li[0:len(li):1]

print li[::]           #輸出[1,2,3,4,5,6,7],省略起始索引、終止索引、步長值表示取全部,等效於li[0:len(li):1]

print li[::-1]        #輸出[7,6,5,4,3,2,1],省略起始索引、終止索引,步長值為-1,表示反向獲取

1.切片:

通過指定下標的方式來獲得某乙個資料元素,或者通過指定下標範圍來獲得一組序列的元素,這種訪問序列的方式叫做切片。

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

sequence[index]

sequence是序列名,index是想要訪問的元素對應的偏移量,偏移量可以是正值,範圍是:0<=index<=len(sequence)-1;也可以是負值,範圍是:-len(sequence)<=index<=-1

序列訪問多個元素,只需給出開始和結束的索引值,並且用冒號分隔就可以了,其語法如下:

sequence[starting_index:ending_index]

通過這種方式我們可以得到從起始索引到結束索引(不包括結束索引對應的元素)之間的

一"片"元素.起始索引和結束索引都是可選的,

如果沒有提供或者用none  作為索引值,切片操作

會從序列的最開始處開始,或者直到序列的最末尾結束。

例如:>>> s='abcdfg'

>>> s

'abcdfg'

>>> s[1]

'b'>>> s[3]

'd'>>> s[1:3]

'bc'

>>> s[3:5]

'df'

>>> s[4:7]

'fg'

>>> s[:]

'abcdfg'

>>> s

file "", line 1

s ^syntaxerror: invalid syntax

>>> s[:7]

'abcdfg'

>>> s[0]

'a'>>> s[0:7]

'abcdfg'

>>> s[4:]

'fg'

>>> s[-100:100]

'abcdfg'

2. 切片與range()函式聯合使用

有這麼乙個問題:有乙個字串,我們想通過乙個迴圈按照這樣的形式顯示它:每次都把

位於最後的乙個字元砍掉,下面是實現這個要求的一種方法:

>>> s = 'abcde'

>>> i = -1

>>> for i in range(-1, -len(s), -1):

... print s[:i]

... abcd

abcab

a可是,該如何在第一次迭代的時候顯示整個字串呢?是否有一種方法可以不用在整個循

環之前加入乙個額外的print 語句呢?我們該如何定義乙個索引,來代表整個的序列呢?事實

上在個以負數作為索引的例子裡是沒有乙個真正能解決這個問題的方法的,因為-1 已經是「最

小」的索引了.我們不可能用0 來作為索引值,因為這會切片到第乙個元素之前而什麼都不會顯

示:>>> s[:0]

''我們的方案是使用另乙個小技巧:用none  作為索引值,這樣一來就可以滿足你的需要,比

如說,在你想用乙個變數作為索引來從第乙個到遍歷最後乙個元素的時候:

>>> s = 'abcde'

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

... print s[:i]

...abcde

abcd

abcab

a不使用用none  作為索引值時,另一種實現滿足需要的方法:

>>> s='abcde'

>>> for i in range(len(s),0,-1):

... 

print s[:i]

...abcde

abcd

abcaba

Python 切片操作符

python之切片操作符 slice 字串 列表 元組在python中都符合 序列 這一特徵,只要符合這一特徵的變數我們都可以用切片 slice 去訪問它們的任意部分。我們可以把序列想像成乙個佇列,我可能需要前面三位 後面三位 或從第三位後的四位 或隔乙個取乙個等,我們用切片操作符來實現上述要求。切...

python的切片(Slice)操作符

l michael sarah tracy bob jack l 0 3 從索引0開始擷取,擷取到第三個元素,即索引為2的元素 michael sarah tracy l 3 前面的0可以省略 michael sarah tracy 支援倒序擷取 從倒數第乙個擷取到倒數第二個,不包括索引為 1的元素...

python列表操作符 python 列表操作符

1.比較操作符 list1 123 list2 456 list1 list2 false 列表中有單個元素時,直接比較相對應的元素大小即可,如果列表中有多個元素呢?如下 list1 123,456 list2 456,123 list1 list2 false 列表中有多個元素時,首先從列表中的第...