1. Learn
  2. /
  3. Courses
  4. /
  5. 効率的なPythonコードの書き方

Connected

Exercise

%lprun を使う:ボトルネックを見つける

関数をプロファイリングすると、ソースコードをより深く掘り下げて、ボトルネックを見つけられる可能性があります。特定の行が関数の実行時間の大半を占めている場合は、より効率的な別の手法に切り替える検討材料になります。

convert_units() 関数を詳しく見ていきましょう。

def convert_units(heroes, heights, weights):

    new_hts = [ht * 0.39370  for ht in heights]
    new_wts = [wt * 2.20462  for wt in weights]

    hero_data = {}

    for i,hero in enumerate(heroes):
        hero_data[hero] = (new_hts[i], new_wts[i])

    return hero_data

line_profiler パッケージを IPython セッションに読み込みましょう。次に、%lprun を使って、スーパーヒーローのデータに対して動く convert_units() 関数をプロファイルしてください。%lprun を使う際の特別な構文(プロファイルしたい関数を指定する -f フラグが必要)を忘れないでください。

convert_units() 関数、heroes リスト、hts 配列、wts 配列はすでにセッションに読み込まれています。コードを書き終えたら、次の質問に答えてください。

convert_units() 関数の合計実行時間に対して、new_hts のリスト内包表記は何パーセントの時間を占めていますか?

Instructions

50 XP

Possible answers