Neste artigo, você aprenderá sobre o dicionário aninhado em Python. Mais especificamente, você aprenderá a criar dicionário aninhado, acessar elementos, modificá-los e assim por diante com a ajuda de exemplos.
Em Python, um dicionário é uma coleção não ordenada de itens. Por exemplo:
dicionário = ('chave': 'valor', 'chave_2': 'valor_2')
Aqui, o dicionário tem um key:value
par entre chaves ()
.
Para saber mais sobre o dicionário, visite Dicionário Python.
O que é dicionário aninhado em Python?
Em Python, um dicionário aninhado é um dicionário dentro de um dicionário. É uma coleção de dicionários em um único dicionário.
nested_dict = ('dictA': ('key_1': 'value_1'), 'dictB': ('key_2': 'value_2'))
Aqui, o nested_dict é um dicionário aninhado com o dicionário dictA
e dictB
. Eles são dois dicionários, cada um com sua própria chave e valor.
Crie um dicionário aninhado
Vamos criar um dicionário de pessoas dentro de um dicionário.
Exemplo 1: como criar um dicionário aninhado
people = (1: ('name': 'John', 'age': '27', 'sex': 'Male'), 2: ('name': 'Marie', 'age': '22', 'sex': 'Female')) print(people)
Quando executamos o programa acima, ele produzirá:
(1: ('nome': 'João', 'idade': '27', 'sexo': 'Homem'), 2: ('nome': 'Maria', 'idade': '22', 'sexo ': 'Fêmea'))
No programa acima, people é um dicionário aninhado. O dicionário interno 1
e 2
é atribuído a pessoas. Aqui, tanto o dicionário tem a chave name
, age
, sex
com valores diferentes. Agora, imprimimos o resultado das pessoas.
Acessar elementos de um dicionário aninhado
Para acessar o elemento de um dicionário aninhado, usamos a ()
sintaxe de indexação em Python.
Exemplo 2: acesse os elementos usando a sintaxe ()
people = (1: ('name': 'John', 'age': '27', 'sex': 'Male'), 2: ('name': 'Marie', 'age': '22', 'sex': 'Female')) print(people(1)('name')) print(people(1)('age')) print(people(1)('sex'))
Quando executamos o programa acima, ele produzirá:
John 27 Masculino
No programa acima, imprimimos o valor da chave name
usando, por exemplo, people(1)('name')
do dicionário interno 1
. Da mesma forma, imprimimos o valor de age
e sex
um por um.
Adicionar elemento a um dicionário aninhado
Exemplo 3: Como alterar ou adicionar elementos em um dicionário aninhado?
people = (1: ('name': 'John', 'age': '27', 'sex': 'Male'), 2: ('name': 'Marie', 'age': '22', 'sex': 'Female')) people(3) = () people(3)('name') = 'Luna' people(3)('age') = '24' people(3)('sex') = 'Female' people(3)('married') = 'No' print(people(3))
Quando executamos o programa acima, ele produzirá:
('nome': 'Luna', 'idade': '24', 'sexo': 'Mulher', 'casado': 'Não')
No programa acima, criamos um dicionário vazio 3
dentro das pessoas do dicionário.
Em seguida, adicionamos o key:value
par, ou seja, people(3)('Name') = 'Luna'
dentro do dicionário 3
. Da mesma forma, fazemos isso para a chave age
, sex
e married
um por um. Quando imprimimos o people(3)
, obtemos key:value
pares de dicionário 3
.
Exemplo 4: adicionar outro dicionário ao dicionário aninhado
people = (1: ('name': 'John', 'age': '27', 'sex': 'Male'), 2: ('name': 'Marie', 'age': '22', 'sex': 'Female'), 3: ('name': 'Luna', 'age': '24', 'sex': 'Female', 'married': 'No')) people(4) = ('name': 'Peter', 'age': '29', 'sex': 'Male', 'married': 'Yes') print(people(4))
Quando executamos o programa acima, ele produzirá:
('nome': 'Pedro', 'idade': '29', 'sexo': 'Homem', 'casado': 'Sim')
No programa acima, atribuímos um literal de dicionário a people(4)
. O literal têm chaves name
, age
e sex
com os respectivos valores. Então imprimimos o people(4)
, para ver se o dicionário 4
é adicionado ao dicionário aninhado pessoas.
Excluir elementos de um dicionário aninhado
Em Python, usamos a instrução “del“ para excluir elementos do dicionário aninhado.
Exemplo 5: como excluir elementos de um dicionário aninhado?
people = (1: ('name': 'John', 'age': '27', 'sex': 'Male'), 2: ('name': 'Marie', 'age': '22', 'sex': 'Female'), 3: ('name': 'Luna', 'age': '24', 'sex': 'Female', 'married': 'No'), 4: ('name': 'Peter', 'age': '29', 'sex': 'Male', 'married': 'Yes')) del people(3)('married') del people(4)('married') print(people(3)) print(people(4))
Quando executamos o programa acima, ele produzirá:
('nome': 'Luna', 'idade': '24', 'sexo': 'Mulher') ('nome': 'Pedro', 'idade': '29', 'sexo': 'Homem')
No programa acima, excluímos os key:value
pares de married
do dicionário interno 3
e 4
. Em seguida, imprimimos o people(3)
e people(4)
para confirmar as alterações.
Exemplo 6: Como excluir um dicionário de um dicionário aninhado?
people = (1: ('name': 'John', 'age': '27', 'sex': 'Male'), 2: ('name': 'Marie', 'age': '22', 'sex': 'Female'), 3: ('name': 'Luna', 'age': '24', 'sex': 'Female'), 4: ('name': 'Peter', 'age': '29', 'sex': 'Male')) del people(3), people(4) print(people)
Quando executamos o programa acima, ele produzirá:
(1: ('nome': 'João', 'idade': '27', 'sexo': 'Homem'), 2: ('nome': 'Maria', 'idade': '22', 'sexo ': 'Fêmea'))
No programa acima, excluímos o dicionário interno 3
e o 4
uso del
de pessoas do dicionário aninhado. Em seguida, imprimimos as pessoas do dicionário aninhado para confirmar as alterações.
Iterando por meio de um dicionário aninhado
Usando os loops for, podemos iterar por meio de cada elemento em um dicionário aninhado.
Example 7: How to iterate through a Nested dictionary?
people = (1: ('Name': 'John', 'Age': '27', 'Sex': 'Male'), 2: ('Name': 'Marie', 'Age': '22', 'Sex': 'Female')) for p_id, p_info in people.items(): print("Person ID:", p_id) for key in p_info: print(key + ':', p_info(key))
When we run above program, it will output:
Person ID: 1 Name: John Age: 27 Sex: Male Person ID: 2 Name: Marie Age: 22 Sex: Female
In the above program, the first loop returns all the keys in the nested dictionary people. It consist of the IDs p_id of each person. We use these IDs to unpack the information p_info of each person.
The second loop goes through the information of each person. Then, it returns all of the keys name
, age
, sex
of each person's dictionary.
Now, we print the key of the person’s information and the value for that key.
Key Points to Remember:
- Nested dictionary is an unordered collection of dictionary
- Slicing Nested Dictionary is not possible.
- We can shrink or grow nested dictionary as need.
- Like Dictionary, it also has key and value.
- O dicionário é acessado com a tecla.