python反转列表不用切片_关于python:使用切片表示法反转列表
在下面的例子:
foo = ['red', 'white', 'blue', 1, 2, 3]
在所有的元素:將打印foo[0:6:1]foo。然而,foo[6:0:-1]將omit 0th首屆歐元。
>>> foo[6:0:-1]
[3, 2, 1, 'blue', 'white']
我的理解是,我可以使用foo.reverse foo()或():1】:反向印刷的列表,但我試圖理解為什么::foo的0 - 1 [ 6 ]不是打印整個名單?
還要注意foo[7:None:-1]的可能性:)
在試圖理解切片符號之前,我從來沒有使用過python,我的問題是為什么foo[6:0:-1]沒有拋出索引錯誤,python不關心它嗎?因為上面的示例數組中沒有6個索引。
@Mubasharahmad切片不是索引,并且在超出界限時不會拋出任何錯誤。不過,索引在超出界限時確實會引發異常。
Slice notication in short:
[ : : ]
如果你想包括第一個元素,當你反復列表時,離開中間元素empty,就像這樣:
ZZU1
你也可以在這里找到一些關于Python的好信息解釋Python的切削標記
這:[ : : ]是我見過的最清晰的切片語法解釋。稱之為"要排除的第一個元素"確實使事情變得很明顯。
用負的步驟進行負的切片怎么樣?我還是不明白。
當使用負索引作為或時,它是從列表的后面進行索引的,因此-1是最后一個元素,-2是第二個到最后一個元素,等等。例如,x[-1:-4:-1]將按相反的順序得到x的最后三個元素。因此,您可以將其解釋為"從列表中的最后一個元素(-1)向后移動每個元素(-1步),直到但不包括從末尾開始的第四個元素(-4)。
倒車時(如為-1時),我認為有幫助。所以,要從一個列表中按相反的順序得到n個"最左邊"的元素:foo[n-1::-1]。以相反的順序獲得n的"最右邊"元素:foo[-1:-n-1:-1]。
如果你有麻煩的記憶,你可以嘗試做冰淇淋:
[In:out:shake it all about]
[First element to include:first element to leave out:the step to use]
YMV
...why foo[6:0:-1] doesn't print the entire list?
因為中值是唯一的,比包容性強,停止值。The interval notication is[start,stop.]
This is exactly how[x]range works:
>>> range(6, 0, -1)
[6, 5, 4, 3, 2, 1]
這些是列入你的結果列表的線索,而不包括第一個項目的0。
>>> range(6, -1, -1)
[6, 5, 4, 3, 2, 1, 0]
另一種看待它的方式是:
>>> L = ['red', 'white', 'blue', 1, 2, 3]
>>> L[0:6:1]
['red', 'white', 'blue', 1, 2, 3]
>>> len(L)
6
>>> L[5]
3
>>> L[6]
Traceback (most recent call last):
File"", line 1, in
IndexError: list index out of range
The index 6 is beyond(one-past,precisely)the valid indices for L,so excluding it from the range as the excluded stop value:
>>> range(0, 6, 1)
[0, 1, 2, 3, 4, 5]
還是給你名單上每一個項目的線索。
range可以,但Slice不能,因為-1是最后一個元素。因此,l=[1, 2, 3]和l[2:-1:-1] == []。
這個答案可能是一個小問題,但對一個同樣麻煩的人來說,它可能是一個幫助。你可以用任意結束的列表到0索引,應用第二個插入點如:
>>> L = list(range(10))
>>> L
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> (start_ex, end) = (7, 0)
>>> L[end:start_ex][::-1]
[6, 5, 4, 3, 2, 1, 0]
這實際上非常有用,因為您可以對所有情況使用相同的語法。您不必將0視為特殊情況。
使用
>>>foo[::-1]
This displays the reverse of the list from the end element to the start,
總結
以上是生活随笔為你收集整理的python反转列表不用切片_关于python:使用切片表示法反转列表的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: matlab1分钟数据转5分钟,把股票的
- 下一篇: 信息学奥赛一本通 1181:整数奇偶排序