次の2つのメソッドは同じことをします。どれが時間/空間の複雑さの面でより効率的ですか?Pythonのリストの理解とネストされたループ、簡潔さ/効率
** Method A**
for student in group.students:
for grade in student.grades:
some_operation(grade)
** Method B**
for grade in [grade for student in group.students for grade in student.grades]
some_operation(grade)
B:中間リストを作成するため、メモリを消費します。代わりにジェネレータ式を使用してください: 'grade in(grade ...):some_operation(grade)'。 – Bakuriu
@Bakuriu、 "()"はジェネレータを示しますか?だから私たちはそれをループするので、 '成績'のリストは作成されませんか? – cheng
関連スレッド http://stackoverflow.com/questions/47789/generator-expressions-vs-list-comprehension http://stackoverflow.com/questions/19933753/generator-vs-list-comprehension – cheng