1. Обучение
  2. /
  3. Курса
  4. /
  5. Эффективный код на Python

Connected

упражнение

Всё вместе: профилирование по вселенной «Звёздных войн»

В вашей сессии загружен список из 480 супергероев (переменная heroes), а также список издателей для каждого из них (переменная publishers).

Вы хотите отфильтровать список heroes по конкретному издателю, но не уверены, какая из двух функций ниже работает эффективнее.

def get_publisher_heroes(heroes, publishers, desired_publisher):

    desired_heroes = []

    for i,pub in enumerate(publishers):
        if pub == desired_publisher:
            desired_heroes.append(heroes[i])

    return desired_heroes
def get_publisher_heroes_np(heroes, publishers, desired_publisher):

    heroes_np = np.array(heroes)
    pubs_np = np.array(publishers)

    desired_heroes = heroes_np[pubs_np == desired_publisher]

    return desired_heroes

Инструкции 1/4

undefined XP
    1
    2
    3
    4
  • Используйте функции get_publisher_heroes() и get_publisher_heroes_np(), чтобы получить список героев вселенной «Звёздных войн». В качестве значения desired_publisher для «Звёздных войн» используйте 'George Lucas'.