Python | Remova os dicionários duplicados do dicionário aninhado
Dado um dicionário aninhado, a tarefa é remover dicionários duplicados do dicionário. Abaixo estão alguns métodos para completar a tarefa dada.
Método # 1: usando o método ingênuo
ini_dict
=
{
'a'
:{
'b'
:
1
,
'c'
:
2
},
'b'
:{
'b'
:
1
,
'c'
:
2
},
'c'
:{
'a'
:
2
,
'b'
:
3
},
'd'
:{
'a'
:
2
,
'b'
:
7
}}
(
"initial dictionary"
,
str
(ini_dict))
result
=
{}
for
key, value
in
ini_dict.items():
if
value
not
in
result.values():
result[key]
=
value
(
"result"
,
str
(result))
dicionário inicial {'c': {'a': 2, 'b': 3}, 'd': {'a': 2, 'b': 7}, 'a': {'c': 2, 'b': 1}, 'b': {'c': 2, 'b': 1}}
resultado {'c': {'a': 2, 'b': 3}, 'd': { 'a': 2, 'b': 7}, 'a': {'c': 2, 'b': 1}}
Método 2: usando classificado e definido
ini_dict
=
{
'a'
:{
'b'
:
1
,
'c'
:
2
},
'b'
:{
'b'
:
1
,
'c'
:
2
},
'c'
:{
'a'
:
2
,
'b'
:
3
},
'd'
:{
'a'
:
2
,
'b'
:
7
}}
(
"initial dictionary"
,
str
(ini_dict))
keep
=
set
({
repr
(
sorted
(value.items())):key
for
key, value
in
ini_dict.items()}.values())
for
key
in
list
(ini_dict):
if
key
not
in
keep:
del
ini_dict[key]
(
"result"
,
str
(ini_dict))
dicionário inicial {'a': {'b': 1, 'c': 2}, 'b': {'b': 1, 'c': 2}, 'c': {'a': 2, 'b': 3}, 'd': {'a': 2, 'b': 7}}
resultado {'b': {'b': 1, 'c': 2}, 'c': { 'a': 2, 'b': 3}, 'd': {'a': 2, 'b': 7}}
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