溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Python中怎么使用切片語法

發(fā)布時(shí)間:2021-06-17 15:57:46 來源:億速云 閱讀:209 作者:Leah 欄目:開發(fā)技術(shù)

今天就跟大家聊聊有關(guān)Python中怎么使用切片語法,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

Python的切片是特別常用的功能,主要用于對列表的元素取值。使用切片也會(huì)讓你的代碼顯得特別Pythonic。

切片的主要聲明如下,假設(shè)現(xiàn)在有一個(gè)list,命名為alist:

alist = [0,1,2,3,4]

切片語法的基本形式為:

alist[start:stop:step]

可以看出對于列表的切片操作有三個(gè)參數(shù),分別為:

  • start:起始位置

  • stop:終止位置

  • step:步長

三個(gè)參數(shù)都是可選參數(shù),意義為list的下標(biāo),即index。step參數(shù)默認(rèn)值為1。表現(xiàn)形式有以下幾種:

alist[start:stop]
alist[start:]
alist[:stop]
alist[:]

  • 第一種方式指定了start與stop參數(shù),從start指定的下標(biāo)開始取alist的元素,直到stop-1,例如 a[1:3] 的結(jié)果為 [1,2] 。

  • 第二種方式會(huì)從start指定的下標(biāo)開始,取alist剩余元素。例如 a[1:] 會(huì)得到 [1,2,3,4] 。

  • 第三種方式會(huì)從alist的開始,取list元素,直到下標(biāo)為stop-1,例如 a[:4] 會(huì)得到結(jié)果 [0,1,2,3]

  • 第四種方式?jīng)]有指定start與stop參數(shù),則會(huì)返回整個(gè)列表。

需要注意的是, :stop 表示不在選定切片中的第一個(gè)值, alist[start:stop] 的取值類似于數(shù)學(xué)中的取值范圍為 [start, stop) , 所以在步長默認(rèn)為1的情況下, start-stop 的結(jié)果即為所取元素的數(shù)量。

負(fù)值用法

start與stop參數(shù)為負(fù)值

start與stop的值可以是負(fù)值,表示取值是從list的最后開始,而不是開頭。 例如:

alist[-1]
alist[-3:]
alist[:-1]

[2,3,4]
[0,1,2,3]

step參數(shù)為負(fù)值

step為負(fù)值時(shí)候表示將列表逆向,最簡單的例子如下:

alist[::-1]

輸出結(jié)果為 [4,3,2,1,0] 。這個(gè)例子實(shí)際是以下面的這個(gè)形式返回,

[alist[-1], alist[-1-step], ..., alist[0]]

即從倒數(shù)第一個(gè)元素開始,每一步加上步長,因?yàn)檫@里步長為負(fù)數(shù),所以是減法,直到alist的開頭。 知道這個(gè)原理,就能明白一些加上了start與stop參數(shù)的復(fù)雜寫法,例如:

指定了start參數(shù)

alist[1::-1]

實(shí)際上是這樣返回:

[alist[1], alist[1-step], ..., alist[0]]

因此,返回的是 [1,0]

指定了stop參數(shù)

alist[:1:-1]

實(shí)際上是這樣返回:

[alist[-1], alist[-1-step], ..., alist[stop+1]]

因此,返回的是 [4, 3, 2] 。

同時(shí)指定了start與stop參數(shù)

注意,由于是逆序,所以start參數(shù)應(yīng)該大于stop參數(shù)。

alist[3:1:-1]

實(shí)際上是這樣返回:

[alist[start], alist[start-step], ..., alist[stop+1]]

因此,返回的是 [3,2]

我們可以看出,

  • 如果指定了start參數(shù),則從start參數(shù)index開始取元素,直到遇到stop下標(biāo)或者list的第一個(gè)元素。

  • 如果未指定start參數(shù),則從list倒數(shù)第一個(gè)元素開始,直到遇到stop下標(biāo)或者list的第一個(gè)元素。

總結(jié)

切片語法的使用特別靈活,如果正確掌握了它的用法,能夠簡化你的代碼。需要注意的是,Python也提供了slice類用于制造切片,例如:

alist[start:stop:step]

實(shí)際上等價(jià)于

alist[(slice(start,stop,step))]

看完上述內(nèi)容,你們對Python中怎么使用切片語法有進(jìn)一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI