Python 中的[:-1]
Vaibhav Vaibhav
2023年10月10日
切片是程式語言中的一種操作,我們可以對物件序列或物件陣列或字串執行該操作。在切片中,我們使用函式和更簡單的符號對資料結構進行切片,以獲得子字串或子序列,或原始資料結構的子陣列。
在 Python 中切片
Python 是一種程式語言,這意味著它也支援切片。在 Python 中,主要有兩種方式可以執行切片。第一個使用 slice()
函式,第二個使用索引語法。
在 Python 中使用 slice()
建構函式切片
切片建構函式接受三個引數:start
、stop
和 step
。此建構函式建立一個切片物件來拆分字串或任何物件序列。
start
:這是切片應該開始的起始索引。它的預設值是0
。stop
:這是切片應該結束的結束索引。這是一個強制性的引數。step
:這是在迭代切片過程的序列時應該採取的增量量。它的預設值為1
。
為了更好地理解這個實用程式,讓我們看一些例子。請注意,在 Python 中,-1
表示最後一個索引。並且,在索引或迭代時,最終結果中不考慮 stop
索引。操作是在它之前的所有東西上執行的。
s = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
slices = [
slice(5),
slice(0, -1),
slice(1, -1, 2),
slice(1, 4, 1),
slice(5, -1),
slice(3, -1, 3),
slice(0, 0),
slice(-1, 0, -1),
slice(-5, 5, -3),
]
for i in range(len(slices)):
print(s[slices[i]])
for i in range(len(slices)):
print(a[slices[i]])
輸出:
ABCDE
ABCDEFGHIJKLMNOPQRSTUVWXY
BDFHJLNPRTVX
BCD
FGHIJKLMNOPQRSTUVWXY
DGJMPSVY
ZYXWVUTSRQPONMLKJIHGFEDCB
VSPMJG
[1, 2, 3, 4, 5]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[2, 4, 6, 8]
[2, 3, 4]
[6, 7, 8, 9]
[4, 7]
[]
[10, 9, 8, 7, 6, 5, 4, 3, 2]
[]
請注意,當單個值傳遞給 slice()
建構函式時,該值將分配給 stop
索引。這就是為什麼對於 slice(5)
,我們得到的輸出是 ABCDE
。
在 Python 中使用索引語法切片
在 Python 中,我們可以使用以下語法來執行切片,而不是使用 slice()
建構函式來建立切片物件。
sequence[start:stop:step]
接受的引數與前一種方法相同;真正改變的是編寫它們的方式。start
、stop
和 step
的預設值分別是 0
、-1
和 1
。請注意,我們可以跳過引數以使用預設值,但必須編寫冒號
。讓我們看一些索引語法的例子,以便更好地理解它。
s = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print(s[5])
print(s[:-1])
print(s[0:-1])
print(s[1:-1:2])
print(s[1:4:1])
print(s[5:-1])
print(s[3:-1:3])
print(s[:0])
print(s[-1:0:-1])
print(s[-5:5:-3])
print(a[5])
print(a[:-1])
print(a[0:-1])
print(a[1:-1:2])
print(a[1:4:1])
print(a[5:-1])
print(a[3:-1:3])
print(a[:0])
print(a[-1:0:-1])
print(a[-5:5:-3])
輸出:
F
ABCDEFGHIJKLMNOPQRSTUVWXY
ABCDEFGHIJKLMNOPQRSTUVWXY
BDFHJLNPRTVX
BCD
FGHIJKLMNOPQRSTUVWXY
DGJMPSVY
ZYXWVUTSRQPONMLKJIHGFEDCB
VSPMJG
6
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[2, 4, 6, 8]
[2, 3, 4]
[6, 7, 8, 9]
[4, 7]
[]
[10, 9, 8, 7, 6, 5, 4, 3, 2]
[]
在 Python 中的 [ : -1]
的意義
如我們所見,此語法屬於索引語法。[ : -1]
將列印除最後一個之外的所有序列元素。讓我們看一些例子來理解這個概念。
s = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print(s[:-1])
print(a[:-1])
輸出:
ABCDEFGHIJKLMNOPQRSTUVWXY
[1, 2, 3, 4, 5, 6, 7, 8, 9]
作者: Vaibhav Vaibhav