python切片操作

2021-09-07 18:22:28 字數 1987 閱讀 6603

[a:b:c],其中a是startindex,b是endindex,c是步長,負責控制方向,c正值為從左到右,startindex應該在endindex左邊,否則返回空字串或空列表,空元組.c為負值方向從右到左,a仍然是startindex,應該在endindex的右邊,否則返回空字串或空列表,空元組.

序列型別是其元素被順序放置的一種資料結構型別,這種方式允許通過下標的方式來獲得某乙個資料元素,或者通過指定下標範圍來獲得一組序列的元素。這種訪問序列的方式叫做切片。字串也可以使用切片操作。切片操作符:  [:]  [::],呼叫內建函式slice()函式。

以字串'abcdefg'為例:sa

bcde

fgindex

index

-7-6

-5-4

-3-2-1

一、sequence[index]

類似於其他語言的陣列操作。sequence是序列的名字,index是想要訪問的元素對應的偏移量。偏移量正負都可以,-len(sequence)<=index<=len(sequence)-1。正索引以序列的開始為起點,負索引以序列的結束為起點。

試圖訪問乙個越界的索引會引發乙個indexerror異常。

二、sequence[starting_index:ending_index]

通過這種方式可以得到從起始索引到結束索引(不包括結束索引所對應的元素)之間的元素,起始索引和結束索引都是可選的,如果沒有提供或者用none作為索引值,切片操作會從序列的最開始處開始,或者直到序列的最末尾結束。其中,開始和結束的索引值可以超出字串長度,如:s[-100:100],返回'abcdefg'.

用乙個:時,starting_index應該小於ending_index,否則返回空字串。步長為負數時,方向從右往左,starting_index應該在ending_index右邊,否則返回空字串

1 # 返回整個序列,即 'abcdefg'

2 s3 s[:]

4 5 # 返回 'abc'

6 s[0:3]

7 s[:3]

8 9 # 返回 'cde'

10 s[2:5]

11 s[:5]

12 13 # 返回 'def'

14 s[-4:-1]

三、sequence[starting_index:ending_index:step]擴充套件切片操作,step為步長引數,類似range()裡的步長引數。

得到的序列從starting_index(包含starting_index)開始,每次以步長前進,即starting_index + step,直到ending_index結束。

執行:

1 # 返回 'fedc'

(2) 第乙個讀sequence[-2],即 'f',第二個讀starting_index + step,即 -2+(-1)=-3,sequence[-3],也就是 'e'。

(3) 按這個順序繼續讀,不包括ending_index,即'b',所以s[-2:-6:-1]返回 'fedc'。

同理,輸出s[2:5:2],返回 'ce'。

有乙個經常用到的應用:翻轉字串

# 輸出 'gfedcba'

1 s =s'abcdefg'

2 print s[::-1]

python 切片操作

在說切片之前,我們不得不先說一下什麼是序列。序列 python中的一種資料結構,這種資料結構根據索引來獲取序列中的物件。在以後比較常見的資料結構中,列表 字典 字串都是序列。形式 slice start index end index step 一般情況下,步長是不寫的用預設值1,形式 slice ...

python切片操作

切片操作 切片是pytho序列及其重要的操作,適用於列表,元組,字串等,切片格式如下 切片slice操作可以讓我們快速提取子列表或修改,標準格式為 其實偏移量start 終止偏移量 end 步長 step 注意 當步長省略受順便可以省略第二個冒號 典型操作 三個量為正數的情況 如下 a 10,20,...

python 切片操作

a python b a 1 意味著翻轉 print b nohtyp c a 2 print c nhy 從後往前數的話,最後乙個位置為 1 d a 1 從位置0到位置 1之前的數 print d pytho e a 2 從位置0到位置 2之前的數 print e pytha 0,1,2,3,4,...