try

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Gast

Freitag 2. September 2005, 09:45

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]
..?
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Freitag 2. September 2005, 09:57

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.
Gast

Freitag 2. September 2005, 10:18

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
Gast

Freitag 2. September 2005, 10:20

danke,

brauche dringend ein Buch... klappt super damit...
henning
User
Beiträge: 274
Registriert: Dienstag 26. Juli 2005, 18:37

Freitag 2. September 2005, 11:44

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...
BlackJack

Freitag 2. September 2005, 22:40

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': '_'}
Antworten