Seite 1 von 1

try

Verfasst: Freitag 2. September 2005, 09:45
von Gast
Hallo,

will ein dict verwenden. Falls ein Eintrag nicht in dem dict vorkommt will ich ihn auf '_' setzten.
wie macht man das?
Falls ein Eintrag nicht vorhanden ist gibt es eine Fehlermeldung. Das will ich vermeiden. Geht das mit try...

try: a=dict[tmp]
..?

Verfasst: Freitag 2. September 2005, 09:57
von CM
Hi

Na ja, es gibt verschiedene Möglichkeiten - je nachdem, was Du genau brauchst. Ganz einfach wäre z. B.:

Code: Alles auswählen

d = {1:'a'}
if d.has_key(1): #True
    mache_irgendwas
else:
    d[1] = '-'
Aber irgendwie klingt das für mich, als ob bei Deinem Beispiel noch mehr drinsteckt ;-). Hoffe es hilft Dir trotzdem weiter ...

Gruß,
Christian

edit:
PS: Bitte keine Schlüsselwörter von Python (wie dict) im Code verwenden, denn sonst überschreibst Du deren Funktionalität und machst Dir bloß unnötigen Ärger.

Re: try

Verfasst: Freitag 2. September 2005, 10:18
von Gast
Hi!
Gast hat geschrieben:will ein dict verwenden. Falls ein Eintrag nicht in dem dict vorkommt will ich ihn auf '_' setzten.
a = myDict.get(tmp,'_')

hth, joe

Verfasst: Freitag 2. September 2005, 10:20
von Gast
danke,

brauche dringend ein Buch... klappt super damit...

Verfasst: Freitag 2. September 2005, 11:44
von henning
Aber Achtung get setzt den Eintrag im dict nicht auf "_", wenn er nicht vorhanden ist, sondern gibt "_" nur zurück in diesem Fall!

Ich kann das Python Cookbook von Oreilly empfehlen, aber an sich ist Python so schön einfach :-) Gibt ja auch n paar gute Tutorials im Netz, und mit code lesen -- code schreiben hab ich python schneller gelernt, als es mit jedem Buch Möglich gewesen wäre...

Verfasst: Freitag 2. September 2005, 22:40
von BlackJack
henning hat geschrieben:Aber Achtung get setzt den Eintrag im dict nicht auf "_", wenn er nicht vorhanden ist, sondern gibt "_" nur zurück in diesem Fall!
In dem Fall ist `setdefault()` geeignet:

Code: Alles auswählen

In [3]: a = dict()

In [4]: a.setdefault('spam', '_')
Out[4]: '_'

In [5]: a
Out[5]: {'spam': '_'}