Dicionário Python fromkeys ()

O método fromkeys () cria um novo dicionário a partir da sequência de elementos fornecida com um valor fornecido pelo usuário.

A sintaxe do fromkeys()método é:

 dicionário.fromkeys (sequência (, valor))

Parâmetros fromkeys ()

fromkeys() método leva dois parâmetros:

  • sequência - sequência de elementos que devem ser usados ​​como chaves para o novo dicionário
  • valor (opcional) - valor que é definido para cada elemento do dicionário

Valor de retorno de fromkeys ()

fromkeys() método retorna um novo dicionário com a sequência de elementos fornecida como as chaves do dicionário.

Se o argumento do valor for definido, cada elemento do dicionário recém-criado será definido com o valor fornecido.

Exemplo 1: crie um dicionário a partir de uma sequência de chaves

 # vowels keys keys = ('a', 'e', 'i', 'o', 'u' ) vowels = dict.fromkeys(keys) print(vowels)

Resultado

 ('a': Nenhum, 'u': Nenhum, 'o': Nenhum, 'e': Nenhum, 'i': Nenhum) 

Exemplo 2: crie um dicionário a partir de uma sequência de chaves com valor

 # vowels keys keys = ('a', 'e', 'i', 'o', 'u' ) value = 'vowel' vowels = dict.fromkeys(keys, value) print(vowels)

Resultado

 ('a': 'vogal', 'u': 'vogal', 'o': 'vogal', 'e': 'vogal', 'i': 'vogal') 

Exemplo 3: criar um dicionário a partir da lista de objetos mutáveis

 # vowels keys keys = ('a', 'e', 'i', 'o', 'u' ) value = (1) vowels = dict.fromkeys(keys, value) print(vowels) # updating the value value.append(2) print(vowels)

Resultado

 ('a': (1), 'u': (1), 'o': (1), 'e': (1), 'i': (1)) ('a': (1, 2 ), 'u': (1, 2), 'o': (1, 2), 'e': (1, 2), 'i': (1, 2)) 

Se valor for um objeto mutável (cujo valor pode ser modificado) como lista, dicionário, etc., quando o objeto mutável é modificado, cada elemento da sequência também é atualizado.

Isso ocorre porque a cada elemento é atribuída uma referência ao mesmo objeto (aponta para o mesmo objeto na memória).

Para evitar esse problema, usamos a compreensão do dicionário.

 # vowels keys keys = ('a', 'e', 'i', 'o', 'u' ) value = (1) vowels = ( key : list(value) for key in keys ) # you can also use ( key : value(:) for key in keys ) print(vowels) # updating the value value.append(2) print(vowels)

Resultado

 ('a': (1), 'u': (1), 'o': (1), 'e': (1), 'i': (1)) ('a': (1), 'u': (1), 'o': (1), 'e': (1), 'i': (1)) 

Aqui, para cada chave em chaves, uma nova lista de valor é criada e atribuída a ela.

Em essência, o valor não é atribuído ao elemento, mas uma nova lista é criada a partir dele, que é então atribuída a cada elemento no dicionário.

Artigos interessantes...