python 生成器_提高你的Python: 解释‘yield’和‘Generators(生成器)’
例子:有趣的素數
假設你的老板讓你寫一個函數,輸入參數是一個int的list,返回一個可以迭代的包含素數
記住,迭代器(Iterable) 只是對象每次返回特定成員的一種能力。
你肯定認為"這很簡單",然后很快寫出下面的代碼:
def get_primes(input_list):
result_list = list()
for element in input_list:
if is_prime(element):
result_list.append()
return result_list
# 或者更好一些的...
def get_primes(input_list):
return (element for element in input_list if is_prime(element))
# 下面是 is_prime 的一種實現...
def is_prime(number):
if number > 1:
if number == 2:
return True
if number % 2 == 0:
return False
for current in range(3, int(math.sqrt(number) + 1), 2):
if number % current == 0:
return False
return True
return False
上面 is_prime 的實現完全滿足了需求,所以我們告訴老板已經搞定了。她反饋說我們的函數工作正常,正是她想要的。
總結
以上是生活随笔為你收集整理的python 生成器_提高你的Python: 解释‘yield’和‘Generators(生成器)’的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 智利红酒品牌排行榜前十名(智利十大红酒排
- 下一篇: zookeeper 日志查看_每天使用的