簡體   English   中英

Python3切片負止損和負步

[英]Python3 slicing negative stop and negative step

請看下面的陳述,從 1 到 4,這一切都是有道理的,並且符合我對 python 切片的了解。 但我無法解釋第 5 條陳述的結果。任何人都可以幫助解釋第 5 條陳述的結果......

x = [1,2,3,4,5,6,7,8,9,10]

#1
print(x[::-2]) 
# prints [10, 8, 6, 4, 2]

#2
print(x[:-2])
# prints [1, 2, 3, 4, 5, 6, 7, 8]

#3
print(x[:-2][::-2])
# prints [8, 6, 4, 2]

#4
print(x[::-2][:-2])
# prints [10, 8, 6]

#5 (please explain this one)
print(x[:-2:-2])
#prints [10]

正如您從示例 #1 中看到的那樣,當您有一個負步長值但沒有開始時,它會從最后一個開始反向工作。 所以第一個值是list中的最后一個值,即索引-1處的10

結尾為-2 ,表示倒數第二個。 但是由於您的步驟是-2 ,因此序列中的下一個將是索引-3 ,即過去的-2 所以序列立即結束。

#5 (please explain this one)
print(x[:-2:-2])
#prints [10]

它只是從 0 索引開始並在 -2 停止(意味着它將 go 到最后的第三項)然后它開始遞增 -2。 切片語法:

x[start:stop:step]

所以肯定會打印 10

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM