1. Học hỏi
  2. /
  3. Khoa Học
  4. /
  5. Viết mã Python hiệu quả

Connected

Bài tập

Tổng hợp: profiling Star Wars

Một danh sách gồm 480 siêu anh hùng đã được nạp vào phiên của bạn (gọi là heroes) cùng với danh sách nhà xuất bản tương ứng của từng anh hùng (gọi là publishers).

Bạn muốn lọc danh sách heroes theo nhà xuất bản cụ thể của từng anh hùng, nhưng chưa chắc hàm nào dưới đây hiệu quả hơn.

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

Hướng dẫn 1/4

undefined XP
    1
    2
    3
    4
  • Dùng hàm get_publisher_heroes() và get_publisher_heroes_np() để thu thập các anh hùng từ vũ trụ Star Wars. desired_publisher cho Star Wars là 'George Lucas'.