您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何在生成器上使用random.shuffle()?python

如何在生成器上使用random.shuffle()?python

为了均匀地随机播放序列,random.shuffle()需要知道输入有多长时间。生成器无法提供此功能;您 必须 将其具体化为一个列表:

lst = list(yielding(x))
random.shuffle(lst)
for i in lst:
    print i

您可以改为使用sorted()withrandom.random()作为键:

for i in sorted(yielding(x), key=lambda k: random.random()):
    print i

但是由于这 也会 产生一个列表,因此沿这条路线走没什么意义。

演示:

>>> import random
>>> x = [1,2,3,4,5,6,7,8,9]
>>> sorted(iter(x), key=lambda k: random.random())
[9, 7, 3, 2, 5, 4, 6, 1, 8]
python 2022/1/1 18:50:48 有545人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶