【发布时间】:2018-08-13 07:59:30
【问题描述】:
我只需要计算前五个素数。我想在列表理解中构建列表时检查列表的长度。以下代码不起作用。
def checkPrime(n):
for i in range(2,int(n**0.5)+1):
if n%i==0:
return False
return True
primes = []
primes = [x for x in range(2,30) if(checkPrime(x) and len(primes)<6) ]
print primes
输出:
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29]
为什么len(primes)<6 在这里不起作用。我怎样才能做到这一点?
【问题讨论】:
-
您的新
primes正在创建中。您一直在检查空列表的长度。 -
这是有道理的。如何在列表理解中检查长度或维护计数器?
标签: python python-2.7 list list-comprehension