400-650-7353
您所在的位置:首頁(yè) > IT干貨資料 > python > 【Python基礎(chǔ)知識(shí)】Python中列表的切片

【Python基礎(chǔ)知識(shí)】Python中列表的切片

  • 發(fā)布: python培訓(xùn)
  • 來(lái)源:python干貨資料
  • 2020-08-21 14:55:40
  • 閱讀()
  • 分享
  • 手機(jī)端入口

切片(slice)用來(lái)獲取列表中的片段,即原始列表的子列表。切片用被方括號(hào)“[]”括起來(lái)且用冒號(hào)“:”分隔的數(shù)字來(lái)表示:

  1. >>> fruits = ['apple''banana''watermelon''strawberry''orange'
  2. >>> fruits[0:3]   # 獲取列表中的前3項(xiàng) 
  3. ['apple''banana''watermelon'
  4. >>> fruits[-2:-1]   # 使用負(fù)數(shù)切片 
  5. ['strawberry'

注意,切片包含索引項(xiàng)的起始值,而不包含結(jié)束值。因此,使用切片fruits[0:3]獲取的是fruits列表的前3項(xiàng),如圖所示。

使用負(fù)數(shù)切片fruits[-2:-1]獲取的是fruits列表的倒數(shù)第2項(xiàng),如圖所示。

初學(xué)者可能會(huì)認(rèn)為切片也包含索引項(xiàng)的結(jié)束值,從而獲取到錯(cuò)誤的切片。例如,嘗試獲取列表的全部項(xiàng):

  1. >>> fruits = ['apple''banana''watermelon''strawberry''orange'
  2. >>> fruits[0:4]   # 錯(cuò)誤的切片,只能獲取到列表中的前4項(xiàng) 
  3. ['apple''banana''watermelon''strawberry'
  4. >>> fruits[0:5]   # 正確的切片,獲取列表的全部項(xiàng) 
  5. ['apple''banana''watermelon''strawberry''orange'

1.1 超出列表范圍的切片

如果嘗試獲取超出列表范圍的切片,Python解釋器不會(huì)報(bào)錯(cuò),而是返回一個(gè)空列表:

  1. >>> fruits[100:200
  2. [] 

同樣,如果切片中索引項(xiàng)的起始值大于結(jié)束值,Python解釋器同樣不會(huì)報(bào)錯(cuò),而是返回一個(gè)空列表:

  1. >>> fruits[3:0] 
  2. [] 

1.2 切片的簡(jiǎn)寫(xiě)

切片的簡(jiǎn)寫(xiě)分為以下三種情況:

①省略索引項(xiàng)的起始值,語(yǔ)法格式為“列表名[:結(jié)束值]”,與“列表名[0:結(jié)束值]”是等價(jià)的。

②省略索引項(xiàng)的結(jié)束值,語(yǔ)法格式為“列表名[起始值:]”,與“列表名[起始值:列表長(zhǎng)度]”是等價(jià)的。

③省略索引項(xiàng)的起始值和結(jié)束值,即獲取列表的全部項(xiàng),語(yǔ)法格式為“列表名[:]”,與“列表名[0:列表長(zhǎng)度]”是等價(jià)的。

下面是一些切片簡(jiǎn)寫(xiě)的示例:

  1. >>> fruits = ['apple''banana''watermelon''strawberry''orange'
  2. >>> fruits[:3]   # 獲取列表中的前3項(xiàng) 
  3. ['apple''banana''watermelon'
  4. >>> fruits[-2:]   # 獲取列表中的后2項(xiàng) 
  5. ['strawberry''orange'
  6. >>> fruits[:]   # 獲取列表的全部項(xiàng) 
  7. ['apple''banana''watermelon''strawberry''orange'

前文提到過(guò),fruits[-2:-1]獲取的是倒數(shù)第2項(xiàng),如果試圖獲取倒數(shù)第1項(xiàng):

  1. >>> # 這兩種方式在此處是等價(jià)的 
  2. >>> fruits[-1:] 
  3. ['orange'
  4. >>> fruits[-1:5
  5. ['orange'

1.3 指定切片的步長(zhǎng)

在執(zhí)行切片操作時(shí),可以指定步長(zhǎng),步長(zhǎng)的值也用冒號(hào)來(lái)分隔。步長(zhǎng)能夠跳過(guò)不想要獲取的項(xiàng)。為了更容易地看出步長(zhǎng)的工作方式,重新創(chuàng)建一個(gè)包含從0到9的整數(shù)列表:

  1. >>> numbers = [0123456789

步長(zhǎng)的默認(rèn)值為1,即一個(gè)挨著一個(gè),前面使用過(guò)的切片全都是這樣。下面兩種寫(xiě)法是等價(jià)的:

  1. >>> numbers = [0123456789
  2. >>> numbers[:] 
  3. [0123456789
  4. >>> numbers[::1
  5. [0123456789

如果指定的步長(zhǎng)大于1,那么會(huì)跳過(guò)一些項(xiàng)。當(dāng)切片的步長(zhǎng)為2時(shí),會(huì)跳過(guò)1項(xiàng);當(dāng)切片的步長(zhǎng)為3時(shí),會(huì)跳過(guò)2項(xiàng):

  1. >>> numbers[::2
  2. [02468
  3. >>> numbers[::3
  4. [0369

索引值可以為負(fù)數(shù),同樣步長(zhǎng)也可以為負(fù)數(shù)。當(dāng)步長(zhǎng)為負(fù)數(shù)時(shí),列表從后向前取。當(dāng)切片的步長(zhǎng)為-1時(shí),即為反轉(zhuǎn)列表;當(dāng)切片的步長(zhǎng)為-2時(shí),會(huì)反轉(zhuǎn)列表并跳過(guò)1項(xiàng):

  1. >>> numbers = [0123456789
  2. >>> numbers[::-1]   # 步長(zhǎng)為-1 
  3. [9876543210
  4. >>> numbers[::-2]   # 步長(zhǎng)為-2 
  5. [97531

 

文章“【Python基礎(chǔ)知識(shí)】Python中列表的切片”已幫助

>>本文地址:http://liujunjsxg.cn/zhuanye/2020/52890.html

THE END  

聲明:本站稿件版權(quán)均屬中公教育優(yōu)就業(yè)所有,未經(jīng)許可不得擅自轉(zhuǎn)載。

1 您的年齡

2 您的學(xué)歷

3 您更想做哪個(gè)方向的工作?

獲取測(cè)試結(jié)果
  • 大前端大前端
  • 大數(shù)據(jù)大數(shù)據(jù)
  • 互聯(lián)網(wǎng)營(yíng)銷(xiāo)互聯(lián)網(wǎng)營(yíng)銷(xiāo)
  • JavaJava
  • Linux云計(jì)算Linux
  • Python+人工智能Python
  • 嵌入式物聯(lián)網(wǎng)嵌入式
  • 全域電商運(yùn)營(yíng)全域電商運(yùn)營(yíng)
  • 軟件測(cè)試軟件測(cè)試
  • 室內(nèi)設(shè)計(jì)室內(nèi)設(shè)計(jì)
  • 平面設(shè)計(jì)平面設(shè)計(jì)
  • 電商設(shè)計(jì)電商設(shè)計(jì)
  • 網(wǎng)頁(yè)設(shè)計(jì)網(wǎng)頁(yè)設(shè)計(jì)
  • 全鏈路UI/UE設(shè)計(jì)UI設(shè)計(jì)
  • VR/AR游戲開(kāi)發(fā)VR/AR
  • 網(wǎng)絡(luò)安全網(wǎng)絡(luò)安全
  • 新媒體與短視頻運(yùn)營(yíng)新媒體
  • 直播帶貨直播帶貨
  • 智能機(jī)器人軟件開(kāi)發(fā)智能機(jī)器人
 

快速通道fast track

近期開(kāi)班時(shí)間TIME