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

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

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

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

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

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

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

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

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

1.1 超出列表范圍的切片

如果嘗試獲取超出列表范圍的切片,Python解釋器不會報錯,而是返回一個空列表:

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

同樣,如果切片中索引項的起始值大于結(jié)束值,Python解釋器同樣不會報錯,而是返回一個空列表:

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

1.2 切片的簡寫

切片的簡寫分為以下三種情況:

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

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

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

下面是一些切片簡寫的示例:

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

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

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

1.3 指定切片的步長

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

  1. >>> numbers = [0123456789

步長的默認值為1,即一個挨著一個,前面使用過的切片全都是這樣。下面兩種寫法是等價的:

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

如果指定的步長大于1,那么會跳過一些項。當(dāng)切片的步長為2時,會跳過1項;當(dāng)切片的步長為3時,會跳過2項:

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

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

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

 

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

>>本文地址:http://hqfphsz.com/zhuanye/2020/52890.html

THE END  

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

1 您的年齡

2 您的學(xué)歷

3 您更想做哪個方向的工作?

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

快速通道fast track

近期開班時間TIME