您的位置:首页 > 编程语言 > Python开发

python技巧——使用list comprehension生成素数(prime number)

2015-11-24 20:47 633 查看
使用list comprehension的目的是构建(construct)一个list

使用一次list comprehension,构建一个非素数

再使用一次list comprehension,获得素数

>>> import math
>>> noprimes = [j for i in range(2, int(math.sqrt(100))) for j in range(2*i, 100, i)]
>>> primes = [x for x in range(2, 100) if x not in noprimes]


当然,也可以对
list comprehension
进行嵌套,比如这样:

>>> primes = [x for x in range(2, 11) if x not in [j for i in range(2, 11) for j in range(2*i, 100, i)]]


也即避免了
noprimes
中间变量的产生,然而这样做使得一条语句变得又长又不便于阅读,出于可读性的考虑,这样的做法并不推荐。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: