--Fall, in dem der Wert des angegebenen Wörterbuchs eine Struktur hat
Zum Beispiel gibt es eine solche Wörterbuchstruktur
Adic = {
↓ Hier oder ↓ Ich möchte hier sortieren
'C134':{"price":30,"sales":"1000","profit":200 ,"alist":[110,20,30 ,50]},
'C623':{"price":80,"sales":"100" ,"profit":6 ,"alist":[100,10,30 ,50]},
'C430':{"price":70,"sales":"5000","profit":1000,"alist":[160,11,120,6]},
'C115':{"price":10,"sales":"2400","profit":40 ,"alist":[80 , 1,10 ,6]}
}
Geben Sie mit sorted () den Wert an, den Sie in der Wertestruktur sortieren möchten (in diesem Fall ist x [1] der innere Wörterbuchtyp). key = lambda x: x[1]['profit']
Müssen folgen, wenn der Wert, den Sie angeben möchten, tiefer ist (x [1] ['alist'] entspricht der Liste, geben Sie die zweite an) key = lambda x: x[1]['alist'][1]
dic = {'A':10000, 'B':2010, 'C':5, 'D':500} res = sortiert (dic.items (), key = lambda x: x [1]) #Wertangabe res = sortiert (pathD.items (), key = lambda x: int (x [0])) # Geben Sie übrigens die Sortierung nach Schlüssel an, wenn key str ist
def lambda(x): return 2x --> lambda x:2x
Beim Diktattyp springt der Taple (Schlüssel, Wert) in x, sodass 0 oder 1 angegeben wird.
import collections
from prettyprint import pp, pp_str #pp ist dein Favorit, also habe bitte kürzlich einen offiziellen
from collections import OrderedDict
Adic = {
#Sortieren Sie diese 4 Spalten nach Wert Wert irgendwo im Wert
'C134':{"price":30,"sales":"1000","profit":200 ,"alist":[110,20,30,50]},
'C623':{"price":80,"sales":"100" ,"profit":6 ,"alist":[100,10,30,50]},
'C430':{"price":70,"sales":"5000","profit":1000,"alist":[160,11,120,6]},
'C115':{"price":10,"sales":"2400","profit":40 ,"alist":[80,1,10,6]}
}
#Es fühlt sich an, als wäre x ein Taple aus dem Wörterbuch. Geben Sie den Wert an, indem Sie ihn durch den Taple ziehen
#Beachten Sie, dass es in List zurückgegeben wird
#Alle absteigende Reihenfolge Bezeichnung:reverse=True
pp('Nach Gewinn sortieren')
res1 = sorted(Adic.items(), key=lambda x: x[1]['profit'],reverse=True)
pp(res1)
pp('Nach Verkäufen sortieren (Zeichenfolge in int konvertiert)')
res2 = sorted(Adic.items(), key=lambda x: int(x[1]['sales']),reverse=True)
pp(res2)
pp('Nach der zweiten Liste sortieren')
res3 = sorted(Adic.items(), key=lambda x: x[1]['alist'][1],reverse=True)
pp(res3)
pp('Schlüsselsortierung (Ziehen Sie die Nummer mit 3 von hinten heraus. Wenn 3 Ziffern oder fest)')
res4 = sorted(Adic.items(), key=lambda x: int (x[0][-3]) ,reverse=True)#Irgendwie auch ohne int
pp(res4)
pp('Schlüsselsortierung (erstes Zeichen"C"Schnitt)')
res5 = sorted(Adic.items(), key=lambda x: int(x[0].lstrip('C')) ,reverse=True)
pp(res5)
pp('Nach Gewinn sortieren 2')
res6 = OrderedDict(sorted(Adic.items(), key=lambda x: x[1]['profit'],reverse=True))
print(res6)#Wenn es pp ist, wird die Reihenfolge unterbrochen.
pp(type(res6))
Ich werde vorerst nur den Gewinnfall einfügen. Die Gewinnwerte 1000, 200, 40, 6 können in absteigender Reihenfolge nach Struktur sortiert werden! In Bezug auf den Schlüssel ist die strukturelle Ordnung c430, c134, c115, c623.
"Nach Gewinn sortieren"
[
[
"C430",
{
"alist": [
160,
11,
120,
6
],
"price": 70,
"profit": 1000,
"sales": "5000"
}
],
[
"C134",
{
"alist": [
110,
20,
30,
50
],
"price": 30,
"profit": 200,
"sales": "1000"
}
],
[
"C115",
{
"alist": [
80,
1,
10,
6
],
"price": 10,
"profit": 40,
"sales": "2400"
}
],
[
"C623",
{
"alist": [
100,
10,
30,
50
],
"price": 80,
"profit": 6,
"sales": "100"
}
]
]
#Bemerkungen
#Beziehung zwischen Lambda-Ausdrücken und -Funktionen
def func(x):
return x ** 2
func = lambda x: x ** 2
func(2) #4
#String-Verarbeitung
string.strip()#Löschen Sie alle Zeilenumbrüche
string.strip("\n\r")#Treffer an beiden Enden löschen
string.rstrip("\n\r")#Löschen Sie, was mit einem Ketsu trifft
Recommended Posts