我们平时比较多会遇到的一种情景是从一堆的数据中随机选择一个, 大多数我们使用random就够了, 但是假如我们要选取的这堆数据分别有自己的权重, 也就是他们被选择的概率是不一样的, 在这种情况下, 就需要使用加权随机来处理这些数据...加速搜索
上面这个方法看起来非常简单, 已经可以完成我们所要的加权随机, 然是最后的这个for循环貌似有些啰嗦, Python有个内置方法bisect可以帮我们加速这一步
import random
import...使用accumulate
在python3.2之后, 提供了一个itertools.accumulate方法, 可以快速的给weights求累积和
>>>> from itertools import...>>>> list(accumulate(data))
[2, 5, 10, 20]
如果你有更好的方法, 欢迎在留言区讨论
参考文章: Weighted random generation in Python