Seite 1 von 1
Dictionary Index
Verfasst: Dienstag 3. Januar 2023, 20:29
von norgsmen
Hallo Community,
ich verstehe nicht, wie der Index bei den dictionarys arbeitet.
Beispiel:
Code: Alles auswählen
frequencies = {"und": 1002, "oder": 876, "nicht": 311}
for word in frequencies:
output = "Das Wort '" + word + "' kommt " + str(frequencies[word]) + "-mal vor."
print(output)
Weshalb wird bei
nicht "und" ausgeben?
Es wird doch mit dem Index im dictionary auf den ersten Wert zugegriffen und der erste Wert ist doch in dem Falle "und".
Müsste die Ausgabe also nicht --> Das Wort 'und' kommt und -mal vor. ?
Danke im Voraus
Re: Dictionary Index
Verfasst: Dienstag 3. Januar 2023, 20:32
von __deets__
Es wird auf den ersten key (der “und” ist) zugegriffen, und der dazugehörige Wert (1002) geliefert. Das ist Sinn Jen Zweck von Wörterbüchern.
Re: Dictionary Index
Verfasst: Dienstag 3. Januar 2023, 20:51
von Sirius3
Eine Schleife über ein Wörterbuch liefert die Schlüssel, sonst würde ja der Variablenname `wort` auch keinen Sinn machen. Und der Zugriff über Eckige Klammern liefert den Wert für den Schlüssel.
Wenn man sowohl Schlüssel als auch Wert braucht, benutzt man .items(). Strings stückelt man nicht mit + zusammen, sondern nutzt Formatstrings. Den String kann man gleich per `print` ausgeben und muß ihn nicht in einer Variable zwischenspeichern:
Code: Alles auswählen
frequencies = {"und": 1002, "oder": 876, "nicht": 311}
for word, frequency in frequencies.items():
print(f"Das Wort '{word}' kommt {frequency}-mal vor.")
Re: Dictionary Index
Verfasst: Dienstag 3. Januar 2023, 23:06
von norgsmen
@Sirius3 Also die eckigen Klammern sind in dem Fall dafür, da dass immer der Wert des dictionarys ausgegeben wird richtig?
Wenn man sowas
sieht, könnte man doch auch meinen, dass nur der erste Teil des dictionarys ausgegeben wird, nämlich nur "und"
Re: Dictionary Index
Verfasst: Dienstag 3. Januar 2023, 23:14
von Sirius3
Könnte man, ist aber nicht so.
Re: Dictionary Index
Verfasst: Dienstag 3. Januar 2023, 23:15
von __deets__
Meinen kann man vieles. Ist halt so nicht. Ein Wörterbuch ordnet Schlüssel werten zu. Der []-Operator greift auf eine wert via des Schlüssels zu. So ist das nunmal, und sich da selbst was auszudenken, und dann überrascht sein, wieso das nicht ist, wie man es sich gedacht hat - Nunja.
Re: Dictionary Index
Verfasst: Mittwoch 4. Januar 2023, 05:36
von sparrow
@norgsmen: Und welchen Sinn könnte es haben, so den Schlüssel auszugeben? Den hast du doch eh schon.
Re: Dictionary Index
Verfasst: Mittwoch 4. Januar 2023, 14:09
von norgsmen
@ sparrow Es ist ja in Endeffekt ziemlich verständlich, und zwar greift man mit dem Index auf den Wert des dictionarys zu und nicht auf den Schlüssel. Ich war irritiert darüber, weil ich das ganze mit einer normalen Liste verglichen haben, wo es ja nun mal so ist, dass man mit "0" auf den ersten Wert der Liste zugreift.
Re: Dictionary Index
Verfasst: Mittwoch 4. Januar 2023, 14:34
von /me
norgsmen hat geschrieben: Mittwoch 4. Januar 2023, 14:09
@ sparrow Es ist ja in Endeffekt ziemlich verständlich, und zwar greift man mit dem Index auf den
Wert des dictionarys zu und
nicht auf den Schlüssel. Ich war irritiert darüber, weil ich das ganze mit einer normalen Liste verglichen haben, wo es ja nun mal so ist, dass man mit "0" auf den ersten Wert der Liste zugreift.
Du hast bei dem Dictionary überhaupt keinen Index. Nicht alles was in eckigen Klammern steht ist ein Index. Du hast das Dictionary und du hast einen Schlüssel. Diesen Schlüssel verwendest du jetzt um aus dem Dictionary den zugehörigen Wert zu holen. Punkt.
Re: Dictionary Index
Verfasst: Mittwoch 4. Januar 2023, 15:30
von __deets__
norgsmen hat geschrieben: Mittwoch 4. Januar 2023, 14:09
@ sparrow Es ist ja in Endeffekt ziemlich verständlich, und zwar greift man mit dem Index auf den
Wert des dictionarys zu und
nicht auf den Schlüssel. Ich war irritiert darüber, weil ich das ganze mit einer normalen Liste verglichen haben, wo es ja nun mal so ist, dass man mit "0" auf den ersten Wert der Liste zugreift.
Ja und das ist doch genau das gleiche. Bei einer Liste erfolgt der Zugriff ueber den Schluessel "Position", und bei einem Woerterbuch eben ueber welchen Schluessel auch immer. Genau darum sind die synonym. Womit du das hier eher verwechselts ist wohl das
vs
Darum gibt es woerterbuch.items() und woerterbuch.values()