[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