Python zählen von Objekten in dict Wert, der eine Liste
Python 3.3, ein dictionary mit Schlüssel /Wert-Paare in dieser form.
d = {'T1': ['eggs', 'bacon', 'sausage']}
Die Werte sind Listen von Variablen Länge, und ich brauche eine Iteration über die Listenelemente. Das funktioniert:
count = 0
for l in d.values():
for i in l: count += 1
Aber es ist hässlich. Es muss eine mehr Pythonic way, aber ich kann nicht scheinen, um es zu finden.
len(d.values())
produziert 1. Es ist 1 Liste (DUH). Versuche mit gegen von hier geben 'unhashable Typ' Fehler.
InformationsquelleAutor der Frage RolfBly | 2013-05-31
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden
sum()
und die Längen der einzelnen Wörterbuch-Werte:Wenn Sie mit Python 3, dann verwenden Sie einfach
d.values()
.Kurze demo mit Ihren Eingangs-sample und einer von mir:
Einen
Counter
helfen Ihnen nicht viel hier, Sie sind nicht die Schaffung einer Zählung pro Eintrag, Sie sind der Berechnung der Gesamtlänge aller Ihrer Werte.InformationsquelleAutor der Antwort Martijn Pieters
InformationsquelleAutor der Antwort John La Rooy
War ich auf der Suche nach einer Antwort auf diese wenn fand ich dieses Thema, bis ich merkte, ich hatte bereits etwas in meinem code einsetzen. Dies ist, was ich kam mit:
Wenn Sie möchten, speichern Sie die Anzahl der für jedes Wörterbuch Element, das Sie erstellen könnte ein neues Wörterbuch zu speichern, die Anzahl der für jeden Schlüssel.
Konnte ich nicht genau feststellen, aus welcher version diese Methode ist verfügbar, aber ich denke .Elemente Methode steht nur in Python 3.
InformationsquelleAutor der Antwort Jeffrey
Meine Hausaufgaben auf dem Baumhaus, ich kam mit dieser. Es kann gemacht werden einfacher, durch einen Schritt, mindestens (dass ich wüsste), aber es könnte einfacher sein für Anfänger (wie mich) zu onderstand diese version.
InformationsquelleAutor der Antwort Rik Schoonbeek