La solicitud

De Megan Collins, Directora de Ventas

“Aquí están los conteos diarios de pedidos de la semana pasada, empezando por el lunes. Quiero mirar los días laborables por separado. ¿Puedes sacar de lunes a viernes?”

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

Python

Cargando el editor…

    ResultadoPresiona Ejecutar para ver el tuyo

    Mote revisa tu resultado

    Presiona Ejecutar. Cada fila que cumple el objetivo se vuelve una luciérnaga en tu linterna.

    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, sort u 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.

    Elige qué puede ejecutarse en este sitio. Puedes cambiarlo cuando quieras desde "Configurar cookies", al pie de cada página.