列表推导式和循环的区别

3
mag=[]
for i in nbn:
    for j in range(1,i+1):
        if i%j==0:
            mag.append(j)

这是我代码的一部分。为了优化代码,我使用另一个列表推导式替换了它,但输出结果不同。

mag=[i for i in numbers_before_n  for j in range(1,i+1) if i%j==0]

这两种循环有什么区别?

1
在for循环中,您正在将j添加到mag列表中,但在列表推导式中,您正在将i保存到mag列表中。 - run-out
1个回答

3
在您的情况下,列表推导式返回的是 i 但您想要的是 j
mag=[j for i in numbers_before_n  for j in range(1,i+1) if i%j==0]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接