2013-03-21 18 views

Odpowiedz

20

sprawdzić na długość:

len(x) >= 4 

lub złapać IndexError wyjątek:

try: 
    value = x[3] 
except IndexError: 
    value = None # no 4th index 

Co użyć zależy od tego jak często można oczekiwać tam być 4th wartość. Jeśli zwykle tam jest, skorzystaj z obsługi wyjątków (lepiej prosić o przebaczenie); jeśli w większości jesteś , nie próbuj mieć czwartej wartości, przetestuj dla długości (wygląd, zanim przeskoczysz).

+4

Dobrze, pokazałeś nowemu użytkownikowi zarówno wzorce LBYL, jak i EAFP. (@A_B, google one) – forivall

+0

To jest w porządku, jeśli liczba twoich testów jest znaną stałą wartością, ale jeśli jest to zmienna całkowita, możesz nie chcieć akceptować ujemnych wartości jako poprawnych, chociaż z powodzeniem będą indeksowane do listy. –

+0

@SimonHibbs lub normalizuj najpierw wartość (dodaj 'len (x)' do negatywnych indeksów, więc 'normalized = len (x) + idx if idx <0 else idx'), następnie sprawdź, czy' 0 <= znormalizowane

3

Chcesz sprawdzić, czy lista zawiera 4 lub więcej elementów?

len(x) >= 4 

Chcesz sprawdzić, czy to, co będzie czwartym elementem w serii, znajduje się na liście?

'd' in x 
Powiązane problemy