2015-07-02 36 views
9

我嘗試在像array[n-i:-i]這樣的循環中動態地訪問數組,並且只要i != 0工作正常。在i==0的情況下,我有array[n:0],我期望從n輸出array到最後,但它什麼也沒有返回(我想是None)。 如何歸檔預期行爲?python動態數組訪問[:0]

+2

爲什麼切片爲'0'會產生一切? 「0」是一個有效的索引。如果你想切到最後,使用'None'。 –

回答

11

使用None切片到最後; Python然後將使用len(array)作爲端點。使用or回落到None-i0

array[n-i:-i or None] 

數字0是considered false in Python boolean contexts。該or operator short-circuits;它返回第一個操作數,如果它是一個真正的值,否則它會評估第二個操作數並返回它。

+0

@SuperBiasedMan:用文檔鏈接更新了答案。 –