Nivel 1 · Corta una semana de pedidos
¿Es nuevo para ti? Lee primero el concepto: Encontrar valores por posición, por clave y uno a uno
0 de 3
La solicitud

De Megan Collins, Directora de Ventas
Tu objetivo
Asigna a result una lista con los conteos de lunes a viernes (los primeros cinco valores de daily_orders), en su orden original.
- Guarda una lista de 5 en
resultpendiente
Tu código
Cargando el editor…
Solución de referencia
Mote revisa tu resultado
Presiona Ejecutar. Cada fila que cumple el objetivo se vuelve una luciérnaga en tu linterna.
Lo que recibe Megan, y por qué
La lección
Una lista guarda valores en orden
Una lista es una colección ordenada que se escribe con corchetes:
daily_orders = [42, 38, 51, 47, 60, 73, 68]
cart = ["Oak Side Table", "Linen Throw Pillow", "Brass Floor Lamp"]
Las listas pueden contener cualquier tipo de valor y conservan el orden en que pusiste las cosas.
Los índices empiezan en cero
Obtienes un elemento con su índice entre corchetes. El primer elemento es el índice 0, no el 1:
daily_orders[0] # 42 Monday
daily_orders[1] # 38 Tuesday
daily_orders[6] # 68 Sunday
daily_orders[7] # IndexError: list index out of range
Los índices negativos cuentan desde el final, lo que es útil cuando no sabes la longitud:
daily_orders[-1] # 68 the last item
daily_orders[-2] # 73 second to last
El slicing toma un rango
Un slice list[start:stop] devuelve una lista nueva desde start hasta stop, sin incluir
este último. Omite cualquiera de los extremos para llegar hasta el borde:
daily_orders[0:5] # [42, 38, 51, 47, 60] Monday to Friday
daily_orders[:5] # same thing
daily_orders[5:] # [73, 68] the weekend
daily_orders[-3:] # [60, 73, 68] the last three days
daily_orders[::2] # [42, 51, 60, 68] every second day
La regla de «hasta pero sin incluir» resulta rara al principio, pero tiene una propiedad muy útil:
[:5] da exactamente 5 elementos, y [:5] más [5:] juntos son la lista completa sin que falte ni
se repita nada.
Funciones integradas que sirven con listas
len(daily_orders) # 7 number of items
sum(daily_orders) # 379 total orders for the week
max(daily_orders) # 73 busiest day
min(daily_orders) # 38 quietest day
sum(daily_orders) / len(daily_orders) # 54.14... average per day
Son movimientos cotidianos de un analista. «¿Cuál fue el día más ocupado?» es max; «¿qué día fue?» es
daily_orders.index(max(daily_orders)), que devuelve 5, es decir, el sábado.
Cambiar una lista
A diferencia de los strings, las listas se pueden cambiar en el sitio:
daily_orders.append(55) # add to the end
daily_orders[0] = 44 # correct Monday's figure
Cuidado: append cambia la propia lista y devuelve None, así que
daily_orders = daily_orders.append(55) te deja con None en lugar de una lista.
Las listas pueden contener cualquier cosa
Una lista no tiene por qué contener números. Puede contener strings, booleanos o incluso otras listas, y
los valores no tienen que ser todos del mismo tipo, aunque en el trabajo de análisis casi siempre lo
son. Una lista de nombres de producto, una lista de ID de pedido por revisar, una lista de nombres de
columna que conservar: construirás listas así constantemente, y todas admiten la misma indexación, el
mismo slicing y len().
Errores comunes
- Errores por uno:
daily_orders[1:5]empieza el martes porque el índice 1 es el segundo elemento. - Esperar que
daily_orders[5]sea el viernes. Es el sábado; el viernes es el índice 4. - Sobrescribir una lista con el valor devuelto por
append,sortu otros métodos que cambian en el sitio.
El mismo slice en pandas
Las filas de un DataFrame se cortan con la misma regla de inicio y fin. orders.iloc[0:7] toma las
primeras siete filas, orders.iloc[7:14] las siete siguientes, y orders.head(7) es el atajo para el
primer slice. La posición final sigue quedando fuera.
¡Linterna encendida!
Practicaste: listsindexingslicinglen sum max
- Resuelto
- Sin pistas
- Al primer intento
