Às vezes é necessário formar um dicionário a partir das chaves fornecidas. Aproximadamente fazer isso levaria tempo e seria um trabalho mais tedioso. Portanto, fromkeys() nos ajuda a resolver facilmente esse problema usando apenas um método. Este artigo explica os aspectos operacionais e outros associados a esse recurso.
Sintaxe: fromkeys (seq, val)
Parâmetros:
seq: A sequência a ser transformada em um dicionário.
val: Valores iniciais que precisam ser atribuídos às chaves geradas... O padrão é Nenhum.Retorna: Um dicionário com chaves mapeadas para Nenhum se nenhum valor for fornecido, senão para o valor fornecido no campo.
Código # 1: Demonstração de fromkeys ()
|
Sair :
O dict recém-criado com valores Nenhum: {’d’: Nenhum, ’a’: Nenhum, ’b’: Nenhum, ’c’: Nenhum, ’e’: Nenhum }
< /blockquote>
O dict recém-criado com 1 como valor: {’ d ’: 1,’ a ’: 1,’ b ’: 1,’ c ’: 1,’ e ’: 1}O comportamento fromdict () com objetos mutáveis como valores:
A função fromdict () também pode ser fornecida com um objeto multilatable como valores padrão. Mas neste caso, uma cópia profunda é criada a partir do dicionário, ou seja, se adicionarmos um valor à lista original, a adição ocorre em todos os valores de chave.
Prevenção: Certas técnicas de compreensão de dicionário podem ser usadas para criar uma nova lista como valores-chave que não apontam para a lista original como valores-chave.
Código nº 2: Demonstrar comportamento com objetos mutáveis.
< td class = "code">
# código de demonstração do Python 3
# comportamento com objetos mutáveis
p>
# inicialização de sequência e lista
seq
=
{
’a’
,
’ b’
,
’c’
,
’d’
,
’ e’
}
lis1
=
[
2
,
3
]
# usando fromkeys () para converter sequência em dict
# usando o método normal
res_dict
=
dict
. fromkeys (seq, lis1)
# Imprimir dict criado
(
"O dict recém-criado com valores de lista:"
+
str
(res_dict))
< br />
# adiciona a lis1
lis1.append (
4
)
# Imprime diktat após adicionar
# Observe que a adição ocorre em todos os valores
(
" O dict com os valores da lista após anexar: "
< classe de código = "palavra-chave"> +
str (res_dict) )
lis1
=
[
2
,
3
]
(
’’
)
# usando fromkeys () para converter a sequência em dict
# usando dict. entendendo
res_dict2
=
{key:
lista
(lis1)
for
chave
em
seq}
# Imprime o dict criado
(
" O dict recém-criado com valores de lista: "
+
str
(res_dict2))
# adiciona a lis1
lis1.append (
4
)
# Imprime diktat após adicionar
# Observe que a adição não está acontecendo agora.
(
" O dict with list valores após anexar (sem alteração): "
+
str
(res_dict2))
Saída:
O dict recém-criado com valores de lista: {’d’: [2, 3], ’e’: [2, 3], ’c’: [2, 3] , ’a’: [2, 3], ’b’: [2, 3]}
O dict com valores de lista após anexar: {’d’: [2, 3, 4], ’e’: [2, 3, 4], ’c’: [2, 3, 4], ’a’: [2, 3, 4], ’b’: [2, 3, 4] }O dict recém-criado com valores de lista: {’d’: [2, 3], ’e’: [2, 3], ’c’: [2, 3], ’a’ : [2, 3], ’b’: [2, 3]}
O dict com os valores da lista após anexar (sem alteração): {’d’: [2, 3], ’e’: [2, 3], ’c’: [2, 3], ’a’: [2, 3], ’b’: [2, 3]}