Python Dictionary mehrere Keys einem Wert zuweisen?
kann mir jmd sagen wie das geht? ich bin gerade bei einem Chatbot und möchte, dass er bei hallo, hi sowie noch mehr begrüßungen hallo antwortet. könnt ihr mir sagen wie ich das machen kann?
4 Antworten
![](https://images.gutefrage.net/media/user/regex9/1455660989427_nmmslarge__0_13_270_270_615d5a3bc6888f4c1486ce2b4d9d8f60.png?v=1455660989000)
Bei wenigen und kurzen Begriffen könnte man einen regulären Ausdruck für den Key verwenden.
Andernfalls solltest du dir für deinen Key einen neuen Datentyp (bzw. eine Klasse) anlegen, deren konkrete Instanzen solche Assoziationen speichern können. Beachte, dass dieser neue Typ hashable sein muss. Das heißt, die Methoden __hash__ und __eq__ müssen implementiert werden.
![](https://images.gutefrage.net/media/user/Kiboman/1707085588070_nmmslarge__0_0_1080_1080_6145e06401a4d56d7dfd2a6b5c0e7ff5.jpg?v=1707085588000)
Weise dem Key ein Magic Word zu z.. !hallo?:
Bei vorkommen so eines Magic words greifst du auf eine von dir erstelle Synonym Klasse zu.
Wobei ich natürlich nicht weiß was du eigentlich vorhast
![](https://images.gutefrage.net/media/user/Lamanini/1571594639777_nmmslarge__246_0_574_574_6ece859a87a5fb7fa36509ca22e7b436.jpg?v=1571594640000)
Du hast ein Dict mit den Worten zu einem Integer.
Und ein Dict was aus deinen Integern die Antworten macht.
Also wäre dann:
Dict1:
"hallo" -> 1
"hi" -> 1
"hey" -> 1
"Ciao" -> 2
"Bye" -> 2
"Bis dann" -> 2
Dict2:
1 -> "Auch Hallo"
2 -> "bye"
![](https://images.gutefrage.net/media/user/andie00/1518946613980_nmmslarge__260_60_1080_1080_9461c4b490096d30204b9d24434abaa7.jpg?v=1518946616000)
Ich würde dafür ein Set (oder eine Liste) verwenden und überprüfen ob die Begrüßung darin vorkommt.
Bsp.:
Set = {'hallo', 'hi', 'sowie noch mehr Begrüßungen'}
s = 'hallo'
if s in Set:
print('Hallo')
# Ausgabe: Hallo
oder als Funktion:
def gruss(s):
Liste = ['hallo', 'hi', 'sowie noch mehr Begrüßungen']
if s in Liste:
print('Hallo')
s = 'sowie noch mehr Begrüßungen'
gruss(s)
# Ausgabe: Hallo
![](https://images.gutefrage.net/media/user/Lamanini/1571594639777_nmmslarge__246_0_574_574_6ece859a87a5fb7fa36509ca22e7b436.jpg?v=1571594640000)
Ich meine zb keywords = {['hallo', 'hi'] : 'Hallo'}, aber mit einer liste funktioniert das halt nicht deswegen habe ich mich gefragt wie es denn geht