Extrahieren Sie die x-te Schlüssel in einem python-Wörterbuch?
Gegeben, ein python-dictionary und eine ganze Zahl n
ich zugreifen zu können, müssen n
th-Taste. Ich brauche dazu immer wieder viele Male in meinem Projekt.
Ich geschrieben habe, eine Funktion, die Folgendes tut:
def ix(self,dict,n):
count=0
for i in sorted(dict.keys()):
if n==count:
return i
else:
count+=1
Aber das problem ist, dass wenn das Wörterbuch ist riesig, die Zeit, die Komplexität erhöht sich, wenn wiederholt verwendet.
Gibt es eine effiziente Möglichkeit, dies zu tun?
Erstens entfernen
es gibt nichts wie "das N-te element" in einer ungeordneten Sammlung. Sie sind Phrasierung das problem falsch, denke ich.
Ya, Danke! Ich habe nicht gewusst, dass die iteration getan werden kann, auch ohne .- Tasten(), und gibt es eine Lösung für die wichtigste Frage?
bestellt dict und die Methoden beschreiben, in die Antworten.
als der Python 3.6/3.7 die Sie nicht mehr benötigen OrderedDict, dicts-Garantie einsetzen, um (und da es ein Sprach-feature in 3.7).
.keys()
für gleichwertig, aber schnelleren codees gibt nichts wie "das N-te element" in einer ungeordneten Sammlung. Sie sind Phrasierung das problem falsch, denke ich.
Ya, Danke! Ich habe nicht gewusst, dass die iteration getan werden kann, auch ohne .- Tasten(), und gibt es eine Lösung für die wichtigste Frage?
bestellt dict und die Methoden beschreiben, in die Antworten.
als der Python 3.6/3.7 die Sie nicht mehr benötigen OrderedDict, dicts-Garantie einsetzen, um (und da es ein Sprach-feature in 3.7).
InformationsquelleAutor Hemanth Malla | 2013-06-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denke, Sie wollten, so etwas zu tun, aber als Wörterbuch nicht habe, um so die Reihenfolge der keys in
dic.keys
kann alles sein:list(dic)
funktioniert PrimaDanke @Ashwini , also intern python erstellt eine Liste mit allen Schlüssel im Wörterbuch Ritus?
Nein, python-dicts sind implementiert als hash-Tabellen. docs.python.org/2/faq/...
InformationsquelleAutor Ashwini Chaudhary
dict.keys()
gibt eine Liste also, alles, was Sie tun müssen, istdict.keys()[n]
Aber, ein Wörterbuch ist eine unsortierte Sammlung, so dass N-te element macht keinen Sinn, in diesem Zusammenhang
oops...ich wirklich brauchen, um zu aktualisieren, dies ist mein 2. Python ist3 Korrektur für den Tag 🙂
Eigentlich
list(dict.keys())[0]
gearbeitet.InformationsquelleAutor shyam