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]
这两种循环有什么区别?
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]
i
但您想要的是 j
:mag=[j for i in numbers_before_n for j in range(1,i+1) if i%j==0]
j
添加到mag
列表中,但在列表推导式中,您正在将i
保存到mag
列表中。 - run-out