Sindyr
En Python, veo gente creando diccionarios como este:
d = dict( one = 1, two = 2, three = 3 )
¿Qué sucede si mis claves son números enteros? Cuando intento esto:
d = dict (1 = 1, 2 = 2, 3 = 3 )
me sale un error Por supuesto que podría hacer esto:
d = { 1:1, 2:2, 3:3 }
que funciona bien, pero mi pregunta principal es esta: ¿hay alguna manera de configurar entero teclas usando la función/constructor dict()?
BrenBarn
Sí, pero no con esa versión del constructor. Puedes hacerlo:
>>> dict([(1, 2), (3, 4)])
{1: 2, 3: 4}
Hay varias maneras diferentes de hacer un dictado. Como documentado“proporcionar argumentos de palabras clave […] solo funciona para claves que son identificadores de Python válidos”.
-
Eso es lo que me temía. Hay una manera fácil y visualmente atractiva de hacer un diccionario
d = dict(one=1, two=2)
pero si sus claves NO son identificadores de Python válidos, se ve obligado a usar una sintaxis de aspecto mucho menos simple. 🙁– Sindyr
13/09/2015 a las 19:49
-
@Sindyr: Hay una manera fácil y atractiva. Es
{1:2, 3:4}
.– BrenBarn
13/09/2015 a las 19:50
-
Sí, tenía eso en mi ejemplo principal, acabo de encontrar la sintaxis igual de
1 = 1
más aún.– Sindyr
13/09/2015 a las 20:54
-
@Sindyr, no encuentro una asignación del formulario
1 = 2
significativo o atractivo.– Alexei
23 de febrero de 2018 a las 14:29
-
@ Yamo93: Seguro que lo hay. solo puedes hacer
my_dict[1] = "whatever"
.– BrenBarn
16 de diciembre de 2021 a las 7:25
También existen estas ‘maneras’:
>>> dict.fromkeys(range(1, 4))
{1: None, 2: None, 3: None}
>>> dict(zip(range(1, 4), range(1, 4)))
{1: 1, 2: 2, 3: 3}
-
Hola, no conocía el método de clase fromkeys. ¡Eso es útil! De hecho, justo hoy estaba trabajando en una fusión de varias fuentes y estoy iterando sobre el conjunto de claves de varias fuentes, porque todas pueden tener elementos distintos, pero las claves son dictados y objetos que se resuelven en instancias de un clase específica. Gracias, @aivar-paalberg!
– Sam Hughes
17 de diciembre de 2021 a las 5:16
Malavan Satkunarajah
a = dict(one=1, two=2, three=3)
Proporcionar argumentos de palabras clave como en este ejemplo solo funciona para claves que son identificadores de Python válidos. De lo contrario, se puede utilizar cualquier clave válida.