2010-10-02 20 views

Odpowiedz

393
if key in array: 
    # do something 

Tablice asocjacyjne nazywane są słowniki w Pythonie i można dowiedzieć się więcej o nich w the stdtypes documentation.

+27

Pamiętaj, aby umieścić nazwę klucza w cudzysłowach, jeśli jest to ciąg znaków. – JAL

+1

Powoduje to błąd "TypeError: string indices musi być liczbą całkowitą". – starbeamrainbowlabs

+1

jak to negować? jeśli nie w tablicy? – astroanu

46

Inną metodą jest has_key() (jeśli nadal używa 2.X)

>>> a={"1":"one","2":"two"} 
>>> a.has_key("1") 
True 
+17

'has_key' jest przestarzałe, usunięte w python 3, a połowa tak szybko w python 2 – aaronasterling

+0

tak, ale nie w 2.X. – ghostdog74

+7

tak jest przestarzałe w 2.x i tak jest w połowie tak szybkie w python 2.x. – aaronasterling

32

Jeśli chcesz pobrać wartość kluczem, jeżeli taka istnieje, można również użyć

try: 
    value = a[key] 
except KeyError: 
    # Key is not present 
    pass 

Jeśli chcesz odzyskać wartość domyślną, gdy klucz nie istnieje, użyj value = a.get(key, default_value). Jeśli chcesz ustawić wartość domyślną w tym samym czasie, jeśli klucz nie istnieje, użyj value = a.setdefault(key, default_value).

+8

Należy zauważyć, że powinieneś używać tylko przypadku 'try/except', jeśli spodziewasz się, że klucz będzie obecny w 100% przypadków. w przeciwnym razie 'if in' jest ładniejsza i bardziej wydajna. +1 za wymienienie innych możliwości. – aaronasterling

Powiązane problemy