Python - Sortieren Sie Wörterbücher nach Größe
Führen Sie bei einer Wörterbuchliste eine Sortierung nach Wörterbuchgröße durch.
Eingabe : test_list = [{4: 6, 9: 1, 10: 2, 2: 8}, {4: 3, 9: 1}, {3: 9}, {1: 2, 9: 3, 7: 4}]
Ausgabe : [{3: 9}, {4: 3, 9: 1}, {1: 2, 9: 3, 7: 4}, {4: 6, 9: 1, 10: 2, 2 : 8}]
Erläuterung : 1 <2 <3 <4, sortiert nach Anzahl der Schlüssel des Wörterbuchs.Eingabe : test_list = [{4: 3, 9: 1}, {3: 9}, {1: 2, 9: 3, 7: 4}]
Ausgabe : [{3: 9}, {4: 3, 9 : 1}, {1: 2, 9: 3, 7: 4}]
Erläuterung : 1 <2 <3, sortiert nach Anzahl der Schlüssel des Wörterbuchs.
Methode 1: Verwenden von len() + sort()
In diesem Fall wird die Sortierung mit sort() durchgeführt und len() wird verwendet, um die Größe des Wörterbuchs zu ermitteln.
def
get_len(sub):
return
len
(sub)
test_list
=
[{
4
:
6
,
9
:
1
,
10
:
2
,
2
:
8
}, {
4
:
3
,
9
:
1
}, {
3
:
9
}, {
1
:
2
,
9
:
3
,
7
:
4
}]
(
"The original list is : "
+
str
(test_list))
test_list.sort(key
=
get_len)
(
"Sorted List : "
+
str
(test_list))
Ausgabe:
Die ursprüngliche Liste lautet: [{4: 6, 9: 1, 10: 2, 2: 8}, {4: 3, 9: 1}, {3: 9}, {1: 2, 9: 3, 7 : 4}]
Sortierte Liste: [{3: 9}, {4: 3, 9: 1}, {1: 2, 9: 3, 7: 4}, {4: 6, 9: 1, 10: 2 , 2: 8}]
Methode 2: Verwenden von sortiert() + len() + Lambda
Hier führen wir die Sortieraufgabe mit sorted() durch , und die Lambda- Funktion wird anstelle der externen Funktion verwendet, um das Problem des Längenabrufs zu lösen.
test_list
=
[{
4
:
6
,
9
:
1
,
10
:
2
,
2
:
8
}, {
4
:
3
,
9
:
1
}, {
3
:
9
}, {
1
:
2
,
9
:
3
,
7
:
4
}]
(
"The original list is : "
+
str
(test_list))
res
=
sorted
(test_list, key
=
lambda
sub:
len
(sub))
(
"Sorted List : "
+
str
(res))
Ausgabe:
Die ursprüngliche Liste lautet: [{4: 6, 9: 1, 10: 2, 2: 8}, {4: 3, 9: 1}, {3: 9}, {1: 2, 9: 3, 7 : 4}]
Sortierte Liste: [{3: 9}, {4: 3, 9: 1}, {1: 2, 9: 3, 7: 4}, {4: 6, 9: 1, 10: 2 , 2: 8}]