以下两种方法执行相同的操作。就时间/空间复杂度而言,哪一个更有效?

** 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看起来很奇怪和多余。您可以将其缩短为:

[some_operation(grade) for student in group.students for grade in student.grades]


但是方法A更好的方法是,因为它不会创建列表。仅仅列出清单以将其丢弃会给读者造成混乱,并浪费内存。

关于python - Python列表理解与嵌套循环,简洁/高效,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39779757/

10-13 07:17