重複の可能性:
リストではなくジェネレータ式を使用する sorted()
リストを常にインスタンス化する代わりにジェネレーターを使用すると、時間とメモリが節約されることは誰もが知っています。特に、内包表記を頻繁に使用する場合はそうです。
ただし、ここで質問があります。次のコードを検討してください。
output = SomeExpensiveCallEgDatabase()
results = [result[0] for result in output]
return sorted(results)
sorted を呼び出すと、ソートされた結果のリストが返されます。以下のように結果を宣言してから sorted を呼び出す方が良いですか、悪いですか?
results = (result[0] for result in output)
私の推測では、sorted() の呼び出しは、ジェネレーターをトラバースし、リスト自体をインスタンス化して、クイックソートまたはマージソートを実行します。したがって、ここでジェネレーターを使用しても利点はありません。この仮定は正しいですか?