Heim >Backend-Entwicklung >Python-Tutorial >Können Python-Wörterbücher sortiert werden?

Können Python-Wörterbücher sortiert werden?

anonymity
anonymityOriginal
2019-06-14 11:25:038508Durchsuche

In Python ist das Wörterbuch ein integrierter Datentyp, eine ungeordnete Speicherstruktur und jedes Element ist ein Schlüssel-Wert-Paar.

Können Python-Wörterbücher sortiert werden?

Zum Beispiel: dict = {'username': 'xiaoming', 'password': '123456'}, wobei 'username' und 'password' Schlüssel sind, und ' Xiaoming' und '123456' sind Werte. Sie können den Verweis auf den entsprechenden Wertwert über d[key] erhalten, aber Sie können den Schlüssel nicht über value erhalten.

Für das Wörterbuch müssen Sie die folgenden Punkte kennen:

a. Der Wörterbuchschlüssel unterscheidet zwischen Groß- und Kleinschreibung.

b Es dürfen keine doppelten Schlüssel enthalten sein.

c. Wörterbücher sind ungeordnet und haben kein Konzept für die Reihenfolge der Elemente.

Wörterbuch ist nach Schlüssel/Wert sortiert:

Das Wörterbuch selbst hat kein Ordnungskonzept, aber es ist immer irgendwann, aber wir müssen oft nach Wörterbuch sortieren

Methode 1: Sortieren nach Schlüsselwert.

def sortedDictValues1(adict):
    items = adict.items()
    print "items:",items 
    items.sort()
    return [value for key, value in items]
adict = {"a1":11,"b1":2,"c1":30,"e1":20,"d1":4}
print sortedDictValues1(adict)
items: [('a1', 11), ('c1', 30), ('e1', 20), ('b1', 2), ('d1', 4)]
[11, 2, 30, 4, 20]

Die items-Methode des Wörterbuchs gibt eine Liste von Tupeln zurück, wobei jedes Tupel ein Elementpaar enthält – einen Schlüssel und einen entsprechenden Wert. Eine Liste von Tupeln kann mit der Methode sort() sortiert werden.

Methode 2: Nach Schlüsselwert sortieren

def sortedDictValues2(adict): 
    keys = adict.keys() 
    keys.sort() 
    return [dict[key] for key in keys]

Die Methode „keys()“ des Wörterbuchobjekts gibt eine Liste aller Schlüsselwerte im Wörterbuch zurück und die Die Reihenfolge ist zufällig. Wenn Sie sortieren müssen, verwenden Sie einfach die Methode sort() für die zurückgegebene Schlüsselwertliste, was schneller als Methode 1 ist.

Methode 3: Nach Schlüsselwert sortieren

def sortedDictValues3(adict): 
    keys = adict.keys() 
    keys.sort() 
    return map(adict.get, keys)

Verwenden Sie die Zuordnungsmethode, um den letzten Schritt effizienter auszuführen

Methode 4: Eins line Statement

[(k,di[k]) for k in sorted(di.keys())]

Methode 5: Nach Wert sortieren

def sort_by_value(d): 
    items=d.items() 
    backitems=[[v[1],v[0]] for v in items] 
    backitems.sort() 
    return [ backitems[i][1] for i in range(0,len(backitems))]

Tausch zuerst den Schlüssel und den Wert des Elements in eine Liste und dann entsprechend der Liste Jeder Der erste Wert des Elements, dh der ursprüngliche Wert, wird sortiert:

Methode 6: Nach Wert sortieren

[ v for v in sorted(di.values())]

Methode 7: Verwenden die sortierte Funktion key= Parametersortierung:

Sortieren nach Schlüssel

print sorted(dict1.items(), key=lambda d: d[0])

Sortieren nach Wert

print sorted(dict1.items(), key=lambda d: d[1])
python内置sorted函数的帮助文档:
sorted(…)
sorted(iterable, cmp=None, key=None, reverse=False) –> new sorted list

Dictionary-Sortiermethode, tatsächlich sind ihre Kernideen dieselben Das heißt, Wörterbuch Die Elemente in werden in eine Liste aufgeteilt und die Liste wird sortiert, wodurch indirekt das Wörterbuch sortiert wird. Dieses „Element“ kann ein Schlüssel, ein Wert oder ein Element sein.

Methode 8: PYTHON's COLLECTION-Serie – geordnetes Wörterbuch (ORDEREDDICT)

orderdDict ist eine Ergänzung zum Wörterbuchtyp, der die Reihenfolge beibehält, in der Wörterbuchelemente hinzugefügt werden

import collections
dic = collections.OrderedDict()
dic["featureName"] = "f1"
dic["uId"] = "12345"
dic["value"] = "7"
print dic
#结果
#OrderedDict([('featureName', 'f1'), ('uId', '12345'), ('value', '7')])

Das obige ist der detaillierte Inhalt vonKönnen Python-Wörterbücher sortiert werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn