1. 学ぶ
  2. /
  3. コース
  4. /
  5. 効率的なPythonコードの書き方

Connected

演習

総まとめ:Star Wars のプロファイリング

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() 関数を使って、Star Wars の世界のヒーローを集めてください。Star Wars の desired_publisher は 'George Lucas' です。