以下 2 个方法执行相同的操作。就时间/空间复杂度而言,哪一种更有效?
** 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 列表理解与嵌套循环,简洁性/效率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39779757/