コード1:2Pythonで2つのコードの実行について混乱していますか?
%%timeit
students = [['Zack',38],['Harry', 37.21], ['Berry', 37.21], ['Tina', 37.2], ['Akriti', 41], ['Harsh', 39]]
second_highest = sorted(list(set([x[1] for x in students])))[1]
([a for a,b in sorted(students) if b == second_highest])
コード:
%%timeit
students = [['Zack',38],['Harry', 37.21], ['Berry', 37.21], ['Tina', 37.2], ['Akriti', 41], ['Harsh', 39]]
s = sorted(set([x[1] for x in students]))
for name in sorted(x[0] for x in students if x[1] == s[1]):
name
今私は2つのプログラムの実行について混乱しています、コード2がどのようには、ネストされたの使用にもかかわらず、コードCODE1よりも高速でありますコード2のforループ。下の画像はJupyterのノートブックからのもので、100000回のループからの平均時間を示しています。違いは非常に分ですが、ネストされたfor-loopはどのようにして単一のforループより速く動作するのかが分かりにくいので混乱します。
私は出力を印刷することになったので、コード
各ループの最終行は何ですか?それは本当に何もしません。 differnecは、2行目の 'list'関数に対する余分な呼び出しからのものです。 –
私は出力を印刷することになっていましたので、最後のコード行の前に印刷を置くことができます – Priyansh