Estoy tratando de aprender python y haciendo pequeños ejercicios tontos, pero me ayudan muchísimo. El ejercicio actual me hace escribir un programa que crea un diccionario con los días de la semana con el número correspondiente como clave:
1: lunes
2: martes
...
Esto es lo que tengo hasta ahora:
dayNumber = [1,2,3,4,5,6,7]
dayName = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"]
week = {}
for n in dayNumber:
week[dayNumber[n]] = dayName[n]
Sin embargo, cuando ejecuto el programa, la primera entrada en la lista es 2: martes. Puedo hacer que funcione cambiando:
dayNumber = [0,1,2,3,4,5,6]
for n in dayNumber:
week[dayNumber[n]+1] = dayName[n]
Pero esta no parece ser la forma correcta de manejar esto. Que esta pasando...
Gracias por la ayuda
2 respuestas
Las listas en Python comienzan en cero, por lo que dayname[1]
es 'martes' no Monday
En ambos fragmentos de código no necesita daynumber[n]
: ya tiene el número de la lista en su variable n. Un bucle for le da el valor de su lista, no el índice en su lista.
Esto debería funcionar :
dayNumber = [1,2,3,4,5,6,7]
dayName = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"]
week = {}
for n in dayNumber:
week[n] = dayName[n-1]
O mejor
dayNumber = [1,2,3,4,5,6,7]
dayName = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"]
week = dict(zip(dayNumber, dayName))
Para listas grandes (1000 entradas), zip parece casi el doble de rápido que el ingenuo para la versión en bucle, probablemente porque zip está escrito en C.
La lista de Python es un índice basado en 0, es decir, el primer elemento de la lista está presente en la posición "0", lista [0]
puede reemplazar
week[dayNumber[n]] = dayName[n]
conweek[n] = dayName[n-1]
dayNumber = [1,2,3,4,5,6,7]
dayName = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday",
"Saturday", "Sunday"]
week = {}
for n in dayNumber:
week[n] = dayName[n-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.