Seite 1 von 1

Dictionary

Verfasst: Dienstag 21. November 2023, 09:02
von norgsmen

Code: Alles auswählen

salutationsDict = {"de": "Keine Angabe", "de":"Frau", "de":"Mann", "en":"not specified", "en":"mrs", "en":"mr"}

germanList = []
englishList = []

for k,v in salutationsDict.items():
    if k == 'de':
        germanList.append(k)

print(germanList)
    
Hi, Leute ich laufe hier mit k und v über ein dictionary durch. Dann frage ich ab, ob k == v ist und wenn das der Fall ist, soll der erste Wert von k an meine Liste germanList angehängt werden. Es wird aber immer nur ein Wert an die Liste angehängt. Ich würde dreimal 'de' erwarten da 'de' auch dreimal in der Liste vorkommt.

Re: Dictionary

Verfasst: Dienstag 21. November 2023, 09:20
von __deets__
Wieso erwartest du, das für den gleichen Schlüssel drei verschiedene Werte vorliegen? Ein dict ordnet einem Schlüssel einen Wert zu. Schon immer. Du kannst als Werte Listen benutzen, um mehrere vorzuhalten.

Re: Dictionary

Verfasst: Dienstag 21. November 2023, 09:26
von Sirius3
Hast Du Dir den Inhalt von salutationsDict angeschaut?

Code: Alles auswählen

{'de': 'Mann', 'en': 'mr'}
Das Wörterbuch enthält nur zwei Einträge, weil es für jeden Key nur einmal geben kann und die nachfolgenden Definitionen die vorherigen ersetzen.
Für Deine Problem ist also so ein Wörterbuch die falsche Datenstruktur, du brauchst ja etwas, das zu jedem Begriff sowohl den Deutschen als auch die Englische Übersetzung zuordnet.

Variablennamen schreibt man generell klein und Typen haben in Namen nichts zu suchen.

Code: Alles auswählen

salutations_de_to_en = {
    "Keine Angabe": "not specified",
    "Frau": "mrs",
    "Mann": "mr",
}
print(list(salutations_de_to_en.keys()))