Creando una función que puede convertir una lista en un diccionario en Python

Estoy intentando crear una función que convertirá una lista dada en un diccionario dado (donde puedo especificar / asignar valores si lo deseo).

Así, por ejemplo, si tengo una lista

['a', 'b', 'c', ..., 'z'] 

y quiero convertir a un diccionario como este

 {1: 'a', 2: 'b', 3: 'c', ..., 26: 'z'} 

Sé cómo hacerlo utilizando un diccionario de comprensión.

 {num : chr(96 + num) for num in range(1, 26)} 

pero no puedo imaginar cómo convertir esto en una función más generalizada que podría convertir cualquier lista en un diccionario. ¿Cuál es el mejor enfoque aquí?

Pase la lista enumerated a dict constructor

 >>> items = ['a','b','c'] >>> dict(enumerate(items, 1)) >>> {1: 'a', 2: 'b', 3: 'c'} 

Aquí enumerate(items, 1) producirá una tuple de elemento y su índice. Los índices comenzarán desde 1 ( observe el segundo argumento de enumerate ). Usando esta expresión puedes definir una función en línea como:

 >>> func = lambda x: dict(enumerate(x, 1)) 

Invocalo como

 >>> func(items) >>> {1: 'a', 2: 'b', 3: 'c'} 

O una función regular

 >>> def create_dict(items): return dict(enumerate(items, 1)) 

Si las claves son solo el índice del elemento en la list , como en su ejemplo:

 {i+1: x for i, x in enumerate(mylist)} 

Iterar a través de la lista y asignar cada valor a un número (comenzando desde 1 ).

 def list_to_dict(items): return {n + 1: items[n] for n in range(len(items))} 

Reemplace n + 1 con n si desea que el diccionario comience desde cero.