Estoy tratando de crear un diccionario que contenga claves de una lista enumerada que asignará el valor enumerado como clave a los valores de la lista.
import string
dic = string.ascii_lowercase
s_dic = []
n_dic = {} ## New Dictionary to contain numbers:letters
for i in dic:
s_dic.append(i)
for number, letter in enumerate(s_dic, start=1):
print(number, '=', letter)
He usado print
solo para probar que el código funcionó. El resultado es el esperado:
1 = a
2 = b
3 = c
4 = d
5 = e
6 = f
7 = g
8 = h
9 = i
10 = j
11 = k
12 = l
13 = m
14 = n
15 = o
16 = p
17 = q
18 = r
19 = s
20 = t
21 = u
22 = v
23 = w
24 = x
25 = y
26 = z
Quiero que n_dic
contenga {1:a, 2:b etc}
3 respuestas
Iiuc puedes probar
n_dic = {i: v for i, v in enumerate(s_dic, start=1)}
Que es una forma estándar de inicializar un diccionario y se llama comprensión del diccionario .
Esto es lo que podrías querer
import string
dic = string.ascii_lowercase
s_dic = []
n_dic = {} ## New Dictionary to contain numbers:letters
for i in dic:
s_dic.append(i)
id = 0
for letter in s_dic:
id = id + 1
n_dic[id] = letter
Puedes crear un diccionario directamente desde enumerate
n_dic = dict(enumerate(s_dic, start=1))
>>> s_dic = list('abcdefg')
>>> dict(enumerate(s_dic, start=1))
{1: 'a', 2: 'b', 3: 'c', 4: 'd', 5: 'e', 6: 'f', 7: 'g'}
O incluso (gracias a @SayandipDutta)
dic = string.ascii_lowercase
dict(enumerate(dic, start=1))
Preguntas relacionadas
Nuevas preguntas
python
Python es un lenguaje de programación multipropósito, de tipificación dinámica y de múltiples paradigmas. Está diseñado para ser rápido de aprender, comprender y usar, y hacer cumplir una sintaxis limpia y uniforme. Tenga en cuenta que Python 2 está oficialmente fuera de soporte a partir del 01-01-2020. Aún así, para preguntas de Python específicas de la versión, agregue la etiqueta [python-2.7] o [python-3.x]. Cuando utilice una variante de Python (por ejemplo, Jython, PyPy) o una biblioteca (por ejemplo, Pandas y NumPy), inclúyala en las etiquetas.