我有一個list物件,看起來如下:
lst = [50, 34,98,8,10]
陳述句print(lst[:5:-2])的輸出為空白[]
我的理解是,print(lst[:5:-2])/code>翻譯成print(lst[-1:5:-2])
這意味著:
- 從索引-1開始 # 這對應的是值10
- 從索引4開始 # 這對應于值10
- 從索引4開始 # 這對應于值10
- 執行-2的增量 。
由于start和stop都指向10,所以我希望這里的輸出是10。
uj5u.com熱心網友回復:
理解python切片語法的一個簡單方法是這樣想的。slice[start:stop:step]
這意味著你的起點是start,這里是索引-1,因為負步驟的起始位置是-1。它在stop處停止,這里是第4個元素。當使用-2的步驟時,第一個迭代將是第4個元素。因此,由于你已經到達了你的停止條件,所以沒有任何東西被回傳。
uj5u.com熱心網友回復:
因此,檔案是這里,以及附加解釋這里。另一個額外的解釋,你可以閱讀這里。 在你的案例中,該語法與
相同。print(lst[-1:5:-2] )
或者
print(lst[-1:-1:-2] )
- 注意這是因為Python也可以使用負數索引,最后一個專案被索引為
-1...直到第一個專案被索引為-len(list)。所以索引5與-1相同。
- 另外,負數的步驟表示起點是串列的最后一項或索引
-1。
所以它的做法是:
- 從索引
-1開始 # 這個對應的值是10 - 從索引
-1開始 # 這對應的值是10。
- 使用
-2作為步驟 。
因為步驟是-2,并且開始已經小于或等于停止(start <= stop),切片的結果是空的,因為沒有從串列中獲取任何東西。
對于如何使用負數步驟的例子,你可以運行
print(lst[5:0:-2] )
與
相同print(lst[-1:-5:-2]
這將回傳[10, 98]
print(lst[5::-2] )
與
相同print(lst[-1:-6:-2]
這將回傳[10, 98, 50]
你仍然可以使用-len(list)-1來進行索引,以包括第一個包含在索引-len(list)中的專案。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/332542.html
標籤:
