access Wert eines python-dict (), ohne zu wissen, die Tasten
Habe ich ein Wörterbuch mit einer Liste von Wörterbüchern. so etwas wie unten:
x = {'a':[{'p':1, 'q':2}, {'p':4, 'q':5}], 'b':[{'p':6, 'q':1}, {'p':10, 'q':12}]}
Die Länge der Listen (Werte) ist identisch für alle Schlüssel der dict-x.
Ich möchte, um die Länge von jedem Wert, d.h. eine Liste, ohne sich durch die offensichtliche Methode -> bekommen Sie die Tasten len(x[keys[0]]) um die Länge.
mein code jetzt:
val = None
for key in x.keys():
val = x[key]
break
#break after the first iteration as the length of the lists is the same for any key
try:
what_i_Want = len(val)
except TypeError:
print 'val wasn't set'
ich bin nicht glücklich mit dieser, gemacht werden können-mehr "pythonic" ich glaube.
Können Sie erläutern, auf was Sie versuchen zu erreichen?
Ich will nur die Länge der Liste viz. der Wert der Schlüssel, die. Alle Werte die gleiche Länge haben
Ich will nur die Länge der Liste viz. der Wert der Schlüssel, die. Alle Werte die gleiche Länge haben
InformationsquelleAutor cbalawat | 2014-02-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Was dazu:
alternativ:
und dann Ihre Antwort
Einige der anderen Lösungen (geschrieben von thefourtheye und gnibbler) sind besser, weil Sie nicht die Schaffung einer intermediate-Liste. Ich fügte hinzu, dass diese Antwort lediglich als einen sich leicht zu merkenden und offensichtliche option, aber keine Lösung für die Zeit-effiziente Nutzung.
len(x.values()[0])
Nette option, Hinzugefügt zu beantworten.
Mind. das man nicht die Arbeit in Python ist3, und es erstellt eine temporäre Liste aller Werte.
Aber, das ist genau das, was Sie haben NICHT wollen, wie pro Ihre Frage.
without having to go through the obvious method -> get the keys, use len(x[keys[0]]) to get the length
Kein problem 🙂 ich versuche nur zu zeigen, dass Bergwerk und gnibbler die zweite Lösung sind weit besser als diese Lösung, da wir nicht schaffen intermediate-Liste. 🙂
InformationsquelleAutor sashkello
Dies ist der effizienteste Weg, da wir es nicht schaffen, alle intermediate-Listen.
Hinweis: Für diese Methode zu arbeiten, sollte das Wörterbuch haben mindestens einen Schlüssel.
InformationsquelleAutor thefourtheye
Funktioniert Python2 oder Python ist3
Dies ist besser für Python2 als es vermeidet, die eine Liste der Werte. Funktioniert auch in Python ist3 zu
InformationsquelleAutor John La Rooy
Mit
next
unditer
:InformationsquelleAutor falsetru
Hier, x ist.Werte gibt Ihnen eine Liste aller Werte, dann können Sie die Länge von jedem Wert aus.
InformationsquelleAutor Tanveer Alam