我正在阅读Python食谱,目前我正在研究发电机.我发现很难理解我的头脑.
因为我来自Java背景,是否有Java等价物?这本书讲的是"制片人/消费者",但是当我听到我想到线程时.
什么是发电机,为什么要使用它?显然没有引用任何书籍(除非你能直接从书中找到一个体面的,简单的答案).也许有例子,如果你感觉很慷慨!
假设我有一个名为的列表,elements每个列表都满足或不满足某些布尔属性p.我想选择一个满足p随机均匀分布的元素.我提前知道有多少物品满足这个属性p.
以下代码会这样做吗?:
pickRandElement(elements, p)
randElement = null
count = 0
foreach element in elements
if (p(element))
count = count + 1
if (randInt(count) == 0)
randElement = element
return randElement
Run Code Online (Sandbox Code Playgroud)
(randInt(n)返回一个随机INT k与0 <= k < n.)