Python - Classifique Dicionários por Tamanho
Dada uma Lista de Dicionário, execute a classificação por tamanho do dicionário.
Entrada : test_list = [{4: 6, 9: 1, 10: 2, 2: 8}, {4: 3, 9: 1}, {3: 9}, {1: 2, 9: 3, 7: 4}]
Resultado : [{3: 9}, {4: 3, 9: 1}, {1: 2, 9: 3, 7: 4}, {4: 6, 9: 1, 10: 2, 2 : 8}]
Explicação : 1 <2 <3 <4, classificado pelo número de chaves do dicionário.Entrada : test_list = [{4: 3, 9: 1}, {3: 9}, {1: 2, 9: 3, 7: 4}]
Saída : [{3: 9}, {4: 3, 9 : 1}, {1: 2, 9: 3, 7: 4}]
Explicação : 1 <2 <3, classificado pelo número de chaves do dicionário.
Método # 1: usando len() + sort()
Neste, a classificação é realizada usando sort() e len() é usado para obter o tamanho do dicionário.
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))
Resultado:
A lista original é: [{4: 6, 9: 1, 10: 2, 2: 8}, {4: 3, 9: 1}, {3: 9}, {1: 2, 9: 3, 7 : 4}]
Lista ordenada: [{3: 9}, {4: 3, 9: 1}, {1: 2, 9: 3, 7: 4}, {4: 6, 9: 1, 10: 2 , 2: 8}]
Método # 2: usando sorted() + len() + lambda
Aqui, realizamos a tarefa de classificação usando sorted() , e a função lambda é usada no lugar da função externa para resolver o problema de obtenção de comprimento.
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))
Resultado:
A lista original é: [{4: 6, 9: 1, 10: 2, 2: 8}, {4: 3, 9: 1}, {3: 9}, {1: 2, 9: 3, 7 : 4}]
Lista ordenada: [{3: 9}, {4: 3, 9: 1}, {1: 2, 9: 3, 7: 4}, {4: 6, 9: 1, 10: 2 , 2: 8}]
As postagens do blog Acervo Lima te ajudaram? Nos ajude a manter o blog no ar!
Faça uma doação para manter o blog funcionando.
70% das doações são no valor de R$ 5,00...
Diógenes Lima da Silva