Fala, meus consagrados! Tudo beleza com vocês?
Começamos os estudos sobre as coleções na linguagem Python: quais são suas principais características e uso. Tudo com exemplos e questões de concursos.
Já iniciamos com o artigo sobre listas, tuplas. e sets. Agora, finalizaremos os estudos sobre coleções na linguagem entendendo como usar os dicionários.
Então, simbora comigo!
Visão geral
São quatro as coleções em Python:
- Lista;
- Tupla;
- Set; e
- Dicionário.
Na tabela 1, temos as principais características dessas coleções.
Característica |
Lista |
Tupla |
Set |
Dicionário |
Ordenada |
Sim |
Sim |
Não |
Sim |
Mutável |
Sim |
Não |
Sim |
Sim |
Indexada |
Sim |
Sim |
Não |
Sim |
Permite membros repetidos |
Sim |
Sim |
Não |
Não |
Tabela 1: principais características das coleções em Python.
Exemplos:
# Lista [] linguagens = ["Python", "Java", "PHP", "C"] # Tupla () linguagens = ("Python", "Java", "PHP", "C") # Set {} linguagens = {"Python", "Java", "PHP", "C"} # Dicionário {} optimus = {"id": 1, "nome": "Optimus Prime"}
Dicionários
São coleções:
- Ordenadas;
- Mutáveis;
- Indexadas; e
- Que não permitem membro repetidos.
Os dicionários são coleções para armazenar dados em pares de chave e valor. Eles são escritos com chaves { }.
Com uma série de exemplos, vamos entender o uso de dicionários. Após isso, iremos resolver várias questões que citam essa coleção.
Criando um dicionário
Primeiro ponto é sabermos como criar dicionários em Python. Podemos criar informando os elementos, cada um com sua chave e valor e todos os elementos envoltos em chaves { }:
optimus = { "id": 1, "nome": "Optimus Prime", "tipo": "Autobot", "veículo": "Caminhão", "modelo": "Freightliner Cab-over-engine Class 8" } # Imprimindo o dicionário. print(optimus)
Resultado da execução:
{'id': 1, 'nome': 'Optimus Prime', 'tipo': 'Autobot', 'veículo': 'Caminhão',
'modelo': 'Freightliner Cab-over-engine Class 8'}
Um dicionário pode ser criado a partir de outro, usando o construtor dict(), passando o dicionário original como parâmetro:
# Dicionário original. optimus1 = { "id": 1, "nome": "Optimus Prime", "tipo": "Autobot", "veículo": "Caminhão", "modelo": "Freightliner Cab-over-engine Class 8" } # Dicionário criado a partir de outro. optimus2 = dict(optimus1) print(optimus2)
Resultado da execução:
{'id': 1, 'nome': 'Optimus Prime', 'tipo': 'Autobot', 'veículo': 'Caminhão',
'modelo': 'Freightliner Cab-over-engine Class 8'}
Imprimindo uma lista
Para imprimir um dicionário, podemos usar a função print():
optimus = { "id": 1, "nome": "Optimus Prime", "tipo": "Autobot", "veículo": "Caminhão", "modelo": "Freightliner Cab-over-engine Class 8" } # Imprimindo o dicionário. print(optimus)
Resultado da execução:
{'id': 1, 'nome': 'Optimus Prime', 'tipo': 'Autobot', 'veículo': 'Caminhão',
'modelo': 'Freightliner Cab-over-engine Class 8'}
Observação: mesmo que seja informado elementos repetidos na criação de um dicionário, esse set conterá apenas elementos únicos. Os elementos repetidos serão descartados, pois dicionários não permitem elementos repetidos:
optimus = { "id": 1, "nome": "Optimus Prime", "tipo": "Autobot", "veículo": "Caminhão", "modelo": "Freightliner Cab-over-engine Class 8", "ano": 1980, "ano": 1982 } print(optimus)
Resultado da execução:
{'id': 1, 'nome': 'Optimus Prime', 'tipo': 'Autobot', 'veículo': 'Caminhão',
'modelo': 'Freightliner Cab-over-engine Class 8', 'ano': 1982}
Vejam que citamos duas vezes o elemento “ano” na criação do dicionário, mas na sua impressão, o elemento apareceu apenas uma vez.
Acessando elementos de um dicionário
Para acessar um elemento do dicionário, utiliza-se a chave do elemento (dicionario[“chave”]):
optimus = { "id": 1, "nome": "Optimus Prime", "tipo": "Autobot", "veículo": "Caminhão", "modelo": "Freightliner Cab-over-engine Class 8" } # Acessando o elemento de chave "nome". print(optimus["nome"]) # Será impresso Optimus Prime
Pode-se usar também o método get(), passando o nome da chave como parâmetro:
optimus = { "id": 1, "nome": "Optimus Prime", "tipo": "Autobot", "veículo": "Caminhão", "modelo": "Freightliner Cab-over-engine Class 8" } # Acessando o elemento de chave "tipo".m print(optimus.get("tipo")) # Será impresso Autobot
Pode-se usar os método keys() para trazer as chaves dos elementos do dicionário e método values(), para os valores dos elementos:
optimus = { "id": 1, "nome": "Optimus Prime", "tipo": "Autobot", "veículo": "Caminhão", "modelo": "Freightliner Cab-over-engine Class 8" } # Acessando as chaves dos elementos do dicionário. print(optimus.keys()) # Será impresso dict_keys(['id', 'nome', 'tipo', 'veículo', 'modelo']) # Acessando os valores dos elementos do dicionário. print(optimus.values()) # Será impresso dict_values([1, 'Optimus Prime', 'Autobot', 'Caminhão', 'Freightliner Cab-over-engine Class 8'])
Já para obtermos tanto as chaves quanto os valores, podemos usar o método items():
optimus = { "id": 1, "nome": "Optimus Prime", "tipo": "Autobot", "veículo": "Caminhão", "modelo": "Freightliner Cab-over-engine Class 8" } # Acessando os elementos do dicionário. print(optimus.items())
Resultado da execução:
dict_items([('id', 1), ('nome', 'Optimus Prime'), ('tipo', 'Autobot'), ('veículo', 'Caminhão'),
('modelo', 'Freightliner Cab-over-engine Class 8')])
Assim como acontece com as outras coleções, podemos utilizar a estrutura de repetição for para iterar os elementos. Mas para dicionários, podemos iterar tanto chaves e valores ou dois ao mesmo tempo.
Iniciaremos pela iteração das chaves:
optimus = { "id": 1, "nome": "Optimus Prime", "tipo": "Autobot", "veículo": "Caminhão", "modelo": "Freightliner Cab-over-engine Class 8" } for x in optimus: print(x)
Resultado da execução:
id nome tipo veículo modelo
Pode-se usar o método keys() que a iteração terá o mesmo resultado:
for x in optimus.keys(): print(x)
Para conseguirmos os valores dos elementos, basta usarmos a notação dicionário[“chave”] ou o método get():
optimus = { "id": 1, "nome": "Optimus Prime", "tipo": "Autobot", "veículo": "Caminhão", "modelo": "Freightliner Cab-over-engine Class 8" } for x in optimus: print(optimus[x]) # Ou poderia ser usado optimus.get(x)
Resultado da execução:
1 Optimus Prime Autobot Caminhão Freightliner Cab-over-engine Class 8
Além dessas duas formas, podemos usar o método values():
optimus = { "id": 1, "nome": "Optimus Prime", "tipo": "Autobot", "veículo": "Caminhão", "modelo": "Freightliner Cab-over-engine Class 8" } for x in optimus.values(): print(x)
Resultado da execução:
1 Optimus Prime Autobot Caminhão Freightliner Cab-over-engine Class 8
Por último, vimos que o método items() traz a chave e o valor de cada elemento e podemos iterar da seguinte forma:
optimus = { "id": 1, "nome": "Optimus Prime", "tipo": "Autobot", "veículo": "Caminhão", "modelo": "Freightliner Cab-over-engine Class 8" } for x, y in optimus.items(): print(x, y)
Resultado da execução:
id 1 nome Optimus Prime tipo Autobot veículo Caminhão modelo Freightliner Cab-over-engine Class 8
Verificando se um elemento está ou não em um dicionário
A operador in também pode ser usada para verificar se uma chave está no dicionário:
optimus = { "id": 1, "nome": "Optimus Prime", "tipo": "Autobot", "veículo": "Caminhão", "modelo": "Freightliner Cab-over-engine Class 8" } if "modelo" in optimus: # Ou pode-se usar if "modelo" in optimus.keys(): print("A chave modelo está no dicionário Optimus") # Será impresso A chave modelo está no dicionário Optimus
Nesse caso, será impressa a frase porque a chave “modelo” está no dicionário.
Para verificar se um valor existe no dicionário, usa-se o método values():
optimus = { "id": 1, "nome": "Optimus Prime", "tipo": "Autobot", "veículo": "Caminhão", "modelo": "Freightliner Cab-over-engine Class 8" } if "Optimus Prime" in optimus.values(): # print("O valor Optimus Prime está no dicionário Optimus") # Será impresso O valor Optimus Prime está no dicionário Optimus
Podemos usar os operadores not in para verificar se uma chave ou um valor está no dicionário:
optimus = { "id": 1, "nome": "Optimus Prime", "tipo": "Autobot", "veículo": "Caminhão", "modelo": "Freightliner Cab-over-engine Class 8" } if "marca" not in optimus: # Ou pode-se usar if "marca" not in optimus.keys(): print("A chave marca não está no dicionário Optimus") # Será impresso A chave marca não está no dicionário Optimus if "Bumblebee" not in optimus.values(): print("O valor Bumblebee não está no dicionário Optimus") # Será impresso O valor Bumblebee não está no dicionário Optimus
Verificando o tamanho de um dicionário
Para retornar o tamanho de um dicionário (quantidade de elementos), utiliza-se a função len():
optimus = { "id": 1, "nome": "Optimus Prime", "tipo": "Autobot", "veículo": "Caminhão", "modelo": "Freightliner Cab-over-engine Class 8" } print(len(optimus)) # Será impresso 5
Adicionando elementos em um dicionário
Veremos duas formas para adicionar um elemento no dicionário. Primeiro, podemos criar um novo elemento, informando uma nova chave e seu valor:
optimus = { "id": 1, "nome": "Optimus Prime", "tipo": "Autobot", "veículo": "Caminhão", "modelo": "Freightliner Cab-over-engine Class 8" } optimus["patente"] = "líder" print(optimus)
Resultado da execução:
{'id': 1, 'nome': 'Optimus Prime', 'tipo': 'Autobot', 'veículo': 'Caminhão',
'modelo': 'Freightliner Cab-over-engine Class 8', 'patente': 'líder'}
A outra forma de inserção de elemento em um dicionário é usando o método update(). Se o item não existir, o item será adicionado. Além disso, podemos adicionar mais de um elemento em um dicionário com esse método. O argumento deve ser um dicionário ou um objeto iterável com pares chave: valor:
optimus = { "id": 1, "nome": "Optimus Prime", "tipo": "Autobot", "veículo": "Caminhão", "modelo": "Freightliner Cab-over-engine Class 8" } optimus.update({"patente": "líder", "origem": "Cybertron"}) print(optimus)
Resultado da execução:
{'id': 1, 'nome': 'Optimus Prime', 'tipo': 'Autobot', 'veículo': 'Caminhão',
'modelo': 'Freightliner Cab-over-engine Class 8', 'patente': 'líder', 'origem': 'Cybertron'}
Ao inserir os elementos das duas formas, os novos elementos ficam no final do dicionário.
Alterando um elemento de um dicionário
As duas formas para adicionar um elemento no dicionário são também usadas para alterar elementos de um dicionário.
Primeiro, podemos alterar o valor de um elemento, informando a sua chave e seu novo valor:
optimus = { "id": 1, "nome": "Optimus Prime", "tipo": "Autobot", "veículo": "Caminhão", "modelo": "Freightliner Cab-over-engine Class 8" } optimus["tipo"] = "Decepticon" print(optimus)
Resultado da execução:
{'id': 1, 'nome': 'Optimus Prime', 'tipo': 'Decepticon', 'veículo': 'Caminhão',
'modelo': 'Freightliner Cab-over-engine Class 8'}
A outra forma de alteração de elemento em um dicionário é usando o método update(). Com ele, podemos alterar mais de um elemento em um dicionário:
optimus = { "id": 1, "nome": "Optimus Prime", "tipo": "Autobot", "veículo": "Caminhão", "modelo": "Freightliner Cab-over-engine Class 8" } optimus.update({"id": 15, "tipo": "Decepticon"}) print(optimus)
Resultado da execução:
{'id': 15, 'nome': 'Optimus Prime', 'tipo': 'Decepticon', 'veículo': 'Caminhão',
'modelo': 'Freightliner Cab-over-engine Class 8'}
Removendo elementos de um dicionário
Agora, entenderemos formas de remoção de elementos de um dicionário. Começando com a remoção de um elemento específico usando o método pop(), informando qual a chave do elemento a ser excluído do dicionário:
optimus = { "id": 1, "nome": "Optimus Prime", "tipo": "Autobot", "veículo": "Caminhão", "modelo": "Freightliner Cab-over-engine Class 8" } optimus.pop("tipo") print(optimus)
Resultado da execução:
{'id': 1, 'nome': 'Optimus Prime', 'veículo': 'Caminhão', 'modelo': 'Freightliner Cab-over-engine Class 8'}
Ao usar o método pop(), os demais elementos da lista serão remanejados, depois do elemento citado ser excluído.
Observação: se o item a ser removido não existir, pop() gerará um erro.
optimus = { "id": 1, "nome": "Optimus Prime", "tipo": "Autobot", "veículo": "Caminhão", "modelo": "Freightliner Cab-over-engine Class 8" } # Removendo um item que não existe no dicionário. optimus.pop("origem") print(optimus)
O elemento “origem” não existe no dicionário, com isso, haverá o erro ao usar o pop():
Traceback (most recent call last): File "./prog.py", line 10, in <module> KeyError: 'origem'
Há outro método chamado popitem(). Com ele, o último elemento do dicionário será excluído:
optimus = { "id": 1, "nome": "Optimus Prime", "tipo": "Autobot", "veículo": "Caminhão", "modelo": "Freightliner Cab-over-engine Class 8" } optimus.popitem() print(optimus)
Resultado da execução:
{'id': 1, 'nome': 'Optimus Prime', 'tipo': 'Autobot', 'veículo': 'Caminhão'}
A última forma de exclusão de um elemento em um dicionário é usando a palavra-chave del, seguida do dicionário e da chave do elemento a ser removido (del dicionário[“chave”]):
optimus = { "id": 1, "nome": "Optimus Prime", "tipo": "Autobot", "veículo": "Caminhão", "modelo": "Freightliner Cab-over-engine Class 8" } del optimus["tipo"] print(optimus)
Resultado da execução:
{'id': 1, 'nome': 'Optimus Prime', 'veículo': 'Caminhão', 'modelo': 'Freightliner Cab-over-engine Class 8'}
Deletando todos os elementos de um dicionário
Podemos excluir todos os itens da lista usando o método clear():
optimus = { "id": 1, "nome": "Optimus Prime", "tipo": "Autobot", "veículo": "Caminhão", "modelo": "Freightliner Cab-over-engine Class 8" } optimus.clear() print(optimus) # Será impresso {}
Deletando um dicionário inteiro
A palavra-chave del pode ser usada tanto para remover um elemento específico de um dicionário quanto para eliminar a coleção inteira:
optimus = { "id": 1, "nome": "Optimus Prime", "tipo": "Autobot", "veículo": "Caminhão", "modelo": "Freightliner Cab-over-engine Class 8" } del optimus print(optimus)
Como o dicionário foi deletado, então haverá um erro na linha print(optimus):
Traceback (most recent call last): File "./prog.py", line 11, in <module> NameError: name 'optimus' is not defined
Copiando um dicionário para outro
Pode-se copiar a lista para outra, usando o método copy():
# Dicionário original. optimus1 = { "id": 1, "nome": "Optimus Prime", "tipo": "Autobot", "veículo": "Caminhão", "modelo": "Freightliner Cab-over-engine Class 8" } # Dicionário criado a partir da cópia do outro. optimus2 = optimus1.copy() print(optimus2)
Resultado da execução:
{'id': 1, 'nome': 'Optimus Prime', 'tipo': 'Autobot', 'veículo': 'Caminhão',
'modelo': 'Freightliner Cab-over-engine Class 8'}
Verificando se os dicionários possuem o mesmo conteúdo
Podemos comparar o conteúdo de dois dicionário para sabermos se elas possuem conteúdos iguais. Para isso, utilizamos o operador ==:
optimus1 = { "id": 1, "nome": "Optimus Prime", "tipo": "Autobot", "veículo": "Caminhão", "modelo": "Freightliner Cab-over-engine Class 8" } optimus2 = { "id": 1, "nome": "Optimus Prime", "tipo": "Autobot", "veículo": "Caminhão", "modelo": "Freightliner Cab-over-engine Class 8" } optimus3 = { "id": 1, "nome": "Optimus Prime", "tipo": "Autobot", "veículo": "Caminhão", "modelo": "Freightliner Cab-over-engine Class 8", "patente": "líder" } print(optimus1 == optimus2) # Será impresso True print(optimus1 == optimus3) # Será impresso False
Verificando se variáveis apontam para o mesmo dicionário
Para este caso, utilizamos o operador is, que verifica se os dicionários são os mesmos, ou seja, se as duas variáveis apontam para o mesmo dicionário:
# Dicionário original. optimus1 = { "id": 1, "nome": "Optimus Prime", "tipo": "Autobot", "veículo": "Caminhão", "modelo": "Freightliner Cab-over-engine Class 8" } # Duas variáveis apontando para o mesmo dicionário. optimus2 = optimus1 # Dicionário criado a partir da cópia do outro. optimus3 = optimus1.copy() print(optimus1 == optimus2) # Possuem o mesmo conteúdo: True print(optimus1 is optimus2) # As duas variáveis apontam para o mesmo dicionário: True print(optimus1 == optimus3) # Possuem o mesmo conteúdo: True print(optimus1 is optimus3) # As duas variáveis não apontam para o mesmo dicionário, pois houve uma cópia: False
Criando um dicionário de dicionários
Um dicionário pode conter outros, que são chamados de dicionários aninhados.
O primeiro exemplo é o seguinte:
autobots = { "optimus" : { "modelo" : "Freightliner Cab-over-engine Class 8" }, "bumblebee" : { "modelo" : "Volkswagen Type 1" }, "ironHide" : { "modelo" : "Nissan Vanette" } } print(autobots)
Resultado da execução:
{'optimus': {'modelo': 'Freightliner Cab-over-engine Class 8'},
'bumblebee': {'modelo': 'Volkswagen Type 1'}, 'ironHide': {'modelo': 'Nissan Vanette'}}
No primeiro exemplo, já construímos o dicionário autobots com os dicionários aninhados.
Mas podemos criar os dicionários aninhados por fora e depois só relacionamos no dicionário principal:
optimus = {"modelo" : "Freightliner Cab-over-engine Class 8"} bumblebee = {"modelo" : "Volkswagen Type 1"} ironHide = {"modelo" : "Nissan Vanette"} autobots = { "optimus" : optimus, "bumblebee" : bumblebee, "ironHide" : ironHide } print(autobots)
Resultado da execução:
{'optimus': {'modelo': 'Freightliner Cab-over-engine Class 8'},
'bumblebee': {'modelo': 'Volkswagen Type 1'}, 'ironHide': {'modelo': 'Nissan Vanette'}}
Funções, métodos, palavras-chave e operadores usados neste artigo
Item | Descrição |
dict()
|
Cria um novo dicionário
|
print(dicionário)
|
Imprime o valor de uma variável ou expressão
|
dicionário[chave]
|
Acessa um elemento específico de um dicionário
|
dicionário.get(chave)
|
Acessa um elemento específico de um dicionário
|
dicionário.keys()
|
Traz as chaves dos elementos de um dicionário
|
dicionário.values()
|
Traz os valores dos elementos de um dicionário
|
dicionário.items()
|
Traz tanto as chaves quanto os valores dos elementos de um dicionário
|
for x in dicionário
|
Acessa a chave de cada elemento de um dicionário
|
for x in dicionário.keys()
|
Acessa a chave de cada elemento de um dicionário
|
for x in dicionário.values()
|
Acessa o valor de cada elemento de um dicionário
|
for x in dicionário.items()
|
Acessa a chave e o valor de cada elemento de um dicionário
|
if chave in dicionário
|
Verifica se uma chave está em um dicionário
|
if chave in dicionário.keys()
|
Verifica se uma chave está em um dicionário
|
if valor in dicionário.values()
|
Verifica se um valor está em um dicionário
|
if chave not in dicionário
|
Verifica se uma chave não está em um dicionário
|
if chave not in dicionário.keys()
|
Verifica se uma chave não está em um dicionário
|
if valor not in dicionário.values()
|
Verifica se um valor não está em um dicionário
|
len(dicionário)
|
Retorna o tamanho de um dicionário (quantidade de elementos)
|
dicionário[nova chave]: valor
|
Adiciona um novo elemento em um dicionário
|
dicionário.update({nova chave 1: valor 1, nova chave 2: valor 2})
|
Adiciona vários novos elementos novos de uma só vez em um dicionário
|
dicionário1.update(dicionário2)
|
Adiciona vários novos elementos de uma só vez em um dicionário a partir de outro, caso as chaves do último sejam diferentes a qualquer chave do primeiro
|
dicionário[chave]: valor
|
Altera um elemento em um dicionário
|
dicionário.update({chave 1: valor 1, chave 2: valor 2})
|
Altera vários elementos de uma só vez em um dicionário
|
dicionário1.update(dicionário2)
|
Altera vários elementos de uma só vez em um dicionário a partir de outro, caso as chaves do último sejam iguais a alguma chave do primeiro
|
dicionário.pop(chave)
|
Remove um elemento específico de um dicionário Ao usá-lo, os demais elementos do dicionário serão remanejados, depois do elemento citado ser excluído Ao usá-lo, se o item a ser removido não existir, o pop() gerará um erro |
dicionário.popitem()
|
Remove um elemento específico de um dicionário
|
del dicionário[chave]
|
Remove um elemento específico de um dicionário Ao usá-lo, os demais elementos do dicionário serão remanejados, depois do elemento citado ser excluído Ao usá-lo, se o item a ser removido não existir, a operação com del gerará um erro |
dicionário.clear()
|
Remove todos os itens de um dicionário
|
del dicionário
|
Elimina uma coleção inteira
|
dicionário.copy()
|
Copia um dicionário para outro
|
Operador ==
|
Verifica se dicionários possuem o mesmo conteúdo
|
Operador is
|
Verifica se os dicionários são os mesmos, ou seja, se as duas variáveis apontam para o mesmo dicionário
|
Tabela 1: revisão das funções, métodos, palavras-chave e operadores usados neste artigo.
Questões de concursos
[1] [NC/UFPR 2017 ITAIPU BINACIONAL – Profissional de Nível Superior Jr – Computação ou Informática – Suporte] Três tipos de dados fundamentais em Python são as listas (“lists”), sequências ou ‘tuplas’ (“tuples”) e dicionários (“dictionaries”).
A respeito dessas estruturas, é correto afirmar:
(A) Listas não podem ser modificadas depois de criadas, ao passo que sequências e dicionários podem.
(B) Listas podem ser modificadas, mas seu tamanho não pode ser modificado após a criação, ao passo que sequências e dicionários não têm essa limitação.
(C) Dicionários não podem ser modificados depois de criados, ao passo que listas e sequências podem.
(D) Listas e sequências são indexadas por inteiros, ao passo que dicionários podem ser indexados por “strings”.
(E) Listas e dicionários são indexados por inteiros, ao passo que sequências podem ser indexadas por “strings”.
Comentários:
Uma questão excelente para revisão.
Comentando cada letra:
- Letra A: “Listas não podem ser modificadas depois de criadas, ao passo que sequências e dicionários podem”;
- ERRADO. A única coleção que não pode ser modificada é a tupla, que na questão é chamada de sequência;
- Letra B: “Listas podem ser modificadas, mas seu tamanho não pode ser modificado após a criação, ao passo que sequências e dicionários não têm essa limitação”;
- ERRADO. A tupla não pode ser modificada e seu tamanho também não. Não há como inserir um novo elemento nem excluir um elemento de uma tupla já criada. As listas, sets e dicionários podem ser modificados;
- Letra C: “Dicionários não podem ser modificados depois de criados, ao passo que listas e sequências podem”;
- ERRADO. É o inverso;
- Letra D: “Listas e sequências são indexadas por inteiros, ao passo que dicionários podem ser indexados por “strings””;
- CERTO. Como vimos, a indexação dos dicionários são por strings enquanto a indexação das listas e tuplas é por valores inteiros;
- Letra E: “Listas e dicionários são indexados por inteiros, ao passo que sequências podem ser indexadas por “strings””;
- ERRADO. Foi explicado na letra D.
Portando, letra D é nosso gabarito.
Gabarito: letra D.
[2] [UFCG 2019 UFCG – Analista de Tecnologia da Informação – Desenvolvimento de Sistemas] Assinale a opção abaixo que contém somente informações corretas. (Marque o texto da letra como CERTO ou ERRADO)
(C) count(d) retorna o número de elementos do dict d.
Comentários:
A função correta para retornar o número de elementos de uma coleção é a função len(d).
Gabarito: ERRADO.
[3] [UFCG 2019 UFCG – Analista de Tecnologia da Informação – Desenvolvimento de Sistemas] Assinale a opção abaixo que contém somente informações corretas. (Marque o texto da letra como CERTO ou ERRADO)
(D) Dicionários em Python 3.7 preservam a ordem de inserção.
Comentários:
Somente a partir da versão Python 3.7, os dicionários são ordenados.
Gabarito: ERRADO.
[4] [UNIRIO 2014 UNIRIO – Analista Tecnologia da Informação – Desenvolvimento de Sistemas] A saída resultante da execução do código Python a seguir é
d1 = dict(a=1,b=2) d2 = {'a': 1,'b':2} r1 = d1 == d2 s1 = str('abc') s2 = str('abc') r2 = s1 != s2 r3 = len('a')==len('b') print r1, r2, r3
(A) True True False
(B) False True False
(C) True True True
(D) False False True
(E) True False True
Comentários:
Primeiro, vamos organizar o código:
d1 = dict(a=1,b=2) d2 = {'a': 1,'b':2} print(d1) # Será impresso {'a': 1, 'b': 2} print(d2) # Será impresso {'a': 1, 'b': 2} r1 = d1 == d2 s1 = str('abc') s2 = str('abc') print(s1) # Será impresso abc print(s2) # Será impresso abc r2 = s1 != s2 print(len('a')) # Será impresso 1 print(len('b')) # Será impresso 1 r3 = len('a') == len('b') print(r1, r2, r3) # Será impresso True False True
Comentando cada linha do código:
- Os dois dicionários (d1 e d2):
- São criados com o mesmo conteúdo:
- Chaves “a” e “b”; e
- Valores 1 e 2, respectivamente;
- d1 = {‘a’: 1, ‘b’: 2};
- d2 = {‘a’: 1, ‘b’: 2};
- São criados com o mesmo conteúdo:
- A variável r1 recebe a comparação de conteúdo dos dicionários d1 e d2 (d1 == d2):
- A variável r1 recebe True porque os dicionários possuem o mesmo conteúdo;
- As strings s1 e s2:
- São criadas com o mesmo conteúdo: “abc”;
- s1 = “abc”;
- s2 = “abc”;
- A variável r2 recebe a diferença de conteúdo das strings s1 e s2 (s1 != s2):
- A variável r2 recebe False porque as strings possuem o mesmo conteúdo;
- A variável r3 recebe a comparação do tamanho das strings “a” e “b” (len(‘a’) == len(‘b’)):
- A variável r3 recebe True porque as strings “a” e “b” possuem o mesmo tamanho: 1.
O resultado da execução então de print(r1, r2, r3) será True False True. Portanto, letra E é o gabarito.
Gabarito: letra E.
[5] [Instituto AOCP 2020 MJSP – Analista de Governança de Dados – Big Data] Um analista do MJSP armazenou nomes e ID no seguinte programa Python:
01 dados = { 02 'Machado de Assis': 7575, 03 'Santos Dumont': 7475, 04 'Rui Barbosa': 1675, 05 };
Agora, o analista necessita apresentar em tela o ID 7475 referente ao nome informado. Assinale a alternativa que apresenta o código correto para imprimir esse ID na tela para o usuário.
(A) print(7475);
(B) print(dados[nome], ID==7475);
(C) print(ID, ‘Santos Dumont’);
(D) print(dados == ‘Santos Dumont);
(E) print(dados[‘Santos Dumont’]);
Comentários:
Para recuperarmos o ID 7475, temos que citar a chave correspondente do dicionário: dados[‘Santos Dumont’]:
dados = { 'Machado de Assis': 7575, 'Santos Dumont': 7475, 'Rui Barbosa': 1675, };
print(dados[‘Santos Dumont’]) # Será impresso 7475
Dessa forma, a letra E trouxe o código correto.
Gabarito: letra E.
Referências
- PensePython2e – Tradução do livro Pense em Python (2ª ed.), de Allen B. Downey. Disponível em: https://penseallen.github.io/PensePython2e/
- Python. Disponível em: https://www.python.org/
- Python e Orientação a Objetos. Disponível em: https://www.caelum.com.br/apostila-python-orientacao-a-objetos
- Python Reference (The Right Way). Disponível em: https://python-reference.readthedocs.io/en/latest/
- Python Tutorial. Disponível em: htps://www.w3schools.com/python/
Então é isso!
[]’s e até a próxima!
_________________________
Professor Rogerão Araújo
Participe da conversa