<jupyter_start><jupyter_text>DicionáriosUm dicionário no Python é uma coleção desordenada formada por pares chave-valor, onde a chave precisa ser um tipo imutável (string, tuplas ou tipos numéricos) e os valores podem ser mutáveis ou imutáveis. Inicializando um Dicionário no PythonEm Python, um dicionário pode ser inicializado de duas formas:```python Declarando o dicionário para só depois adicionar chaves-valornome_do_dicionario = {}nome_do_dicionario['Chave1'] = 'Valor1'nome_do_dicionario['Chave2'] = 'Valor2'Ou Declarando o dicionário já com seus pares nome_do_dicionario = {'Chave1': 'Valor1', 'Chave2': 'Valor2'}```Alguns exemplos de declaração podem ser vistos abaixo:<jupyter_code># Declara o dicionario já admitindo alguns pares chave-valor
autores_musicas = {'<NAME>': '<NAME>', '<NAME>': 'Mama Africa'}

# Imprime o valor para o qual a chave '<NAME>' aponta
print (autores_musicas['<NAME>'])
# Imprime o valor para o qual a chave '<NAME>' aponta
print (autores_musicas['<NAME>'])
# Adiciona outro par chave-valor ao dicionário autores_musicas
autores_musicas['X<NAME>iao'] = 'Nota Dez'

# Imprime o valor para o qual a chave '<NAME>' aponta
print (autores_musicas['X<NAME>iao'])<jupyter_output>Nota Dez<jupyter_text>No caso abaixo, a chave recebe uma lista como valor.<jupyter_code># Adiciona outro par chave-valor ao dicionario autores_musicas
autores_musicas['Rihanna'] = ['Diamonds', 'Needed Me', 'Kiss It Better']

# Imprime o valor para o qual a chave 'Rihanna' aponta
print (autores_musicas['Rihanna'])<jupyter_output>['Diamonds', 'Needed Me', 'Kiss It Better']<jupyter_text>Como o valor é uma lista, seus elementos podem ser acessados por iteração.<jupyter_code># Guarda a lista de músicas que está contida no dicionário com a chave 'Rihanna' 
# na variável musicas_rihanna 
musicas_rihanna = autores_musicas['Rihanna']

# Itera sobre os indices da lista
for indice in range(len(musicas_rihanna)):
  # Imprime os elementos da lista que tem como chave 'Rihanna'
  print (musicas_rihanna[indice])<jupyter_output>Diamonds
Needed Me
Kiss It Better<jupyter_text>Métodos importantes para iterar sobre dicionáriosNativamente, o Python fornece métodos para iterar sobre os dicionários, sendo eles listados na tabela abaixo:Método | O que faz-------------|-----------------items() | retorna uma lista de tuplas com as chaves e os valores keys() | retorna uma lista contendo somente as chavesvalues() | retorna uma lista contendo somente os valores  Mostrando na prática:<jupyter_code># Declara o dicionário glossario_computacao
glossario_computacao = {'P1': 'Programacao 1', 'LP1': 'Laboratorio de Programacao 1'}

# Imprime o retorno dos métodos para o dicionário glossario_computacao
print ("Método items() =>", list(glossario_computacao.items()))
print ("Método keys() =>", list(glossario_computacao.keys()))
print ("Método values() =>", list(glossario_computacao.values()))<jupyter_output>Método items() => [('P1', 'Programacao 1'), ('LP1', 'Laboratorio de Programacao 1')]
Método keys() => ['P1', 'LP1']
Método values() => ['Programacao 1', 'Laboratorio de Programacao 1']<jupyter_text>Agora utilizando o *for* para iterar sobre as coleções retornadas pelos métodos.<jupyter_code># Para iterar sobre a lista de tuplas chave-valor gerada pelo método items()
# são necessárias duas variáveis de controle
for sigla, significado in glossario_computacao.items():
  print ("Chave:", sigla, "=>", "Valor:", significado)<jupyter_output>Chave: P1 => Valor: Programacao 1
Chave: LP1 => Valor: Laboratorio de Programacao 1<jupyter_text>Como o retorno do método keys é uma __lista__, é possível iterar da mesma maneira.<jupyter_code># Por elemento
for sigla in glossario_computacao.keys():
  print (sigla)
  
# Por índice
lista_chaves = list(glossario_computacao.keys())

for indice in range(len(lista_chaves)):
  print (lista_chaves[indice])<jupyter_output>P1
LP1<jupyter_text>Por último, o método *values()*.<jupyter_code># Por elemento
for significado in glossario_computacao.values():
  print (significado)
  
# Por índice
lista_valores = list(glossario_computacao.values())

for indice in range(len(lista_valores)):
  print (lista_valores[indice])<jupyter_output>Programacao 1
Laboratorio de Programacao 1
{'fraction_non_alphanumeric': 0.10958254269449716, 'fraction_numerical': 0.006641366223908918, 'mean_word_length': 6.411247803163445, 'pattern_counts': {'":': 0, '<': 32, '<?xml version=': 0, '>': 41, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '7', 'dir': 'jupyter-structured-clean-dedup', 'id': '356701', 'license': 'MIT', 'n_tokens_mistral': 1544, 'n_tokens_neox': 1537, 'n_words': 453, 'path': 'prog1/implementacoes/tutoriais/dicionarios.ipynb', 'repo_name': 'michellymenezes/Tamburetei', 'size': '4253'}