Después de de nuestra extensa recopilación de información hemos podido resolver esta cuestión que tienen algunos de nuestros lectores. Te brindamos la solución y deseamos serte de mucha apoyo.
Solución:
Puedes usar dict.fromkeys()
método –
>>> s = 'abcdefghijklmnopqrstuvwxyz'
>>> alphaDict = dict.fromkeys(s,0)
>>> alphaDict
'm': 0, 'p': 0, 'i': 0, 'n': 0, 'd': 0, 'w': 0, 'k': 0, 'y': 0, 's': 0, 'b': 0, 'h': 0, 't': 0, 'u': 0, 'q': 0, 'g': 0, 'l': 0, 'e': 0, 'a': 0, 'j': 0, 'c': 0, 'o': 0, 'f': 0, 'v': 0, 'x': 0, 'z': 0, 'r': 0
De la documentación –
fromkeys(secuencia[, value])
Crear un nuevo diccionario con keys de seq y valores establecidos en valor.
fromkeys()
es un método de clase que devuelve un nuevo diccionario. el valor predeterminado esNone
.
Tenga en cuenta que no debe usar esto si value
es algo mutable como list
u otro dict
etc. Como el valor solo se evalúa una vez cuando llama al método fromkeys()
y todo keys señalar el mismo objeto.
Puede usar esto para tipos inmutables como valor como int
, str
etc.
Además, no es necesario especificar el s
o alphabet
stringpuedes usar en su lugar string.ascii_lowercase
. Ejemplo –
>>> import string
>>> alphaDict = dict.fromkeys(string.ascii_lowercase,0)
>>> alphaDict
'm': 0, 'p': 0, 'i': 0, 'n': 0, 'd': 0, 'w': 0, 'k': 0, 'y': 0, 's': 0, 'b': 0, 'h': 0, 't': 0, 'u': 0, 'q': 0, 'g': 0, 'l': 0, 'e': 0, 'a': 0, 'j': 0, 'c': 0, 'o': 0, 'f': 0, 'v': 0, 'x': 0, 'z': 0, 'r': 0
Puede usar comprensiones de diccionario en Python.
alphabetDict = char: 0 for char in alphabet
Diccionarios (Python Docs)
Hay una pequeña diferencia entre esta respuesta y la anterior de Anand. Las comprensiones dictadas evalúan el valor de cada keymientras fromkeys
solo lo hace una vez. Si está usando cosas como ints, esto no plantea ningún problema. Sin embargo, si lo haces
d = key: [] for key in
d[3].append(5)
print(d[2])
te dio
[]
y tienes listas distintas, mientras
d = dict.fromkeys(, [])
d[3].append(5)
print(d[2])
te dio
[5]
mapeará todos los keys a la misma lista.
Sí, puede hacerlo en una línea usando comprensiones de diccionario.
In [1]: alphabet = 'abcdefghijklmnopqrstuvwxyz'
In [2]: x:0 for x in alphabet # dictionary comprehension
Out[2]:
'a': 0,
'b': 0,
'c': 0,
'd': 0,
'e': 0,
'f': 0,
'g': 0,
'h': 0,
'i': 0,
'j': 0,
'k': 0,
'l': 0,
'm': 0,
'n': 0,
'o': 0,
'p': 0,
'q': 0,
'r': 0,
's': 0,
't': 0,
'u': 0,
'v': 0,
'w': 0,
'x': 0,
'y': 0,
'z': 0
Te mostramos comentarios y puntuaciones
No se te olvide mostrar esta sección si te valió la pena.