Seite 1 von 1
Mehre Zahlen einem String zuweisen
Verfasst: Dienstag 28. August 2018, 11:56
von wese85
Hallo
Ich würde gerne einer Liste von Zahlen einen String zuordnen z.B (1,2,3) = 'Hallo'; (4,9,7) = 'Test'
sodass wenn ich nun die 9 wähle das Wort 'Test' herauskommt.
Ich hab es schon mit Dictionarys versucht diese lassen aber nur eine Zahl zu.
gruß wese
Re: Mehre Zahlen einem String zuweisen
Verfasst: Dienstag 28. August 2018, 12:00
von __blackjack__
@wese85: Dictionary ist schon der richtige Ansatz, Du musst halt jede einzelne Zahl dem jeweiligen Wort zuordnen.
Code: Alles auswählen
In [5]: d = dict()
In [6]: for ns, v in [((1, 2, 3), 'Hallo'), ((4, 9, 7), 'Test')]:
...: for n in ns:
...: d[n] = v
...:
In [7]: d
Out[7]: {1: 'Hallo', 2: 'Hallo', 3: 'Hallo', 4: 'Test', 9: 'Test', 7: 'Test'}
In [8]: d[9]
Out[8]: 'Test'
Re: Mehre Zahlen einem String zuweisen
Verfasst: Dienstag 28. August 2018, 12:00
von __deets__
Ein dict ist aber trotzdem die richtige Loesung. Es ordnet einem Schluessel einen Wert zu. Wenn du mehrere Schluessel hast, denen du den gleichen Wert zuweisen willst, dann machst du das halt:
Wenn man das ganze etwas kompakter haben will, kann man sich natuerlich auch Hilfsfunktion schreiben:
Code: Alles auswählen
def multikeydict(items):
res = {}
for keys, value in items:
for key in keys:
assert key not in res
res[key] = value
return res
d = multikeydict(
[
((1, 2, 3), "Test"),
((4, 5, 6), "Foo"),
}
)
Re: Mehre Zahlen einem String zuweisen
Verfasst: Dienstag 28. August 2018, 12:41
von wese85
Danke Sehr!
Möglichst kompakt war das Stichwort!
Re: Mehre Zahlen einem String zuweisen
Verfasst: Dienstag 28. August 2018, 14:16
von Sirius3
Möglichst kompakt sieht so aus:
Code: Alles auswählen
def multikeydict(items):
return {key: value for keys, value in items for key in keys}