[Python-de] Fehler abfangen bei nicht vorhandenem Listeneintrag

Tobias Klausmann klausman at schwarzvogel.de
Die Mai 24 15:30:42 CEST 2005


Hi! 

On Tue, 24 May 2005, Diez B. Roggisch wrote:

> Am Tuesday, 24. May 2005 13:18 schrieb Ron Opitz:
> > Hallo,
> >
> > der Betreff sagt ja schon alles.
> >
> > Ich habe eine Liste definiert und greife dann darauf zu.
> > Verwende ich einen nicht vorhandenen Key, so erhalte ich eine Fehlermeldung
> > mit KeyError. Wie kann ich vorab prüfen ob es ein Wertepaar gibt?
> 
> Das ist so eine eher komische Aussage. Wertepaare gibt es in dictionaries - in 
> Listen eigentlich nicht. Und in einer Liste kann man nur durch Zugriff 
> ausserhalb der Werte [0:len(liste) - 1] einen Fehler bekommen. In dicts gibts 
> has_key(), und generell wird sowas
> 
> try:
>      v = container[key]s
>      .....
> except KeyError:
>     whatever()
> 
> gerne gesehen.

Alternativ auch gerne .get():
>>> d
{'a': 1, 'c': 3, 'b': 2}
>>> print d.get("a")
1
>>> print d.get("foo")
None
>>> print d.get("foo", "bar")
bar

Da ist insbesondere praktisch, dass man einen anderen Defaultwert
(siehe letzter get()-Aufruf im Beispiel) angeben kann.

Gruss,
Tobias

-- 
export DISPLAY=vt100