2015-07-02 10 views
9

Próbuję uzyskać dostęp do tablicy dynamicznie w pętli, takiej jak array[n-i:-i] i działa ona dobrze tak długo, jak i != 0. W przypadku i==0 Mam array[n:0], które spodziewałem się wyprowadzić array od n do końca, ale nic nie zwraca (None chyba). Jak zarchiwizować oczekiwane zachowanie?python dynamiczny dostęp do tablicy [: 0]

+2

Po co krojenie na "0" produkuje wszystko do końca? '0' jest poprawnym indeksem. Użyj 'None', jeśli chcesz przeciąć do końca. –

Odpowiedz

11

Użyj None, aby wyciąć do końca; Python użyje jako punktu końcowego len(array). Użyj or spadać z powrotem do None gdy -i jest 0:

array[n-i:-i or None] 

numeryczna 0 jest considered false in Python boolean contexts. The or operator short-circuits; zwraca pierwszy operand, jeśli jest to wartość prawdziwa, w przeciwnym razie oceni drugi argument i zwróci go.

+0

@SuperBiasedMan: zaktualizowano odpowiedź za pomocą linków dokumentacji. –

Powiązane problemy