相关疑难解决方法(0)

如何从列表中随机选择一个项目?

假设我有以下列表:

foo = ['a', 'b', 'c', 'd', 'e']
Run Code Online (Sandbox Code Playgroud)

从此列表中随机检索项目的最简单方法是什么?

python random list

1656
推荐指数
15
解决办法
132万
查看次数

从未知长度的序列中随机选择N个项目

我正在尝试编写一种算法,该算法可以随机地从序列中选择N个不同的项目,而不需要事先知道序列的大小,并且在不止一次迭代序列的情况下进行迭代是很昂贵的.例如,序列的元素可能是一个巨大文件的行.

我在N = 1时找到了一个解决方案(也就是说,当试图从一个巨大的序列中随机选择一个元素时):

import random
items = range(1, 10) # Imagine this is a huge sequence of unknown length
count = 1
selected = None
for item in items:
    if random.random() * count < 1:
        selected = item
    count += 1
Run Code Online (Sandbox Code Playgroud)

但是如何才能为其他N值(比如N = 3)实现同样的目的呢?

python random algorithm

44
推荐指数
4
解决办法
7万
查看次数

标签 统计

python ×2

random ×2

algorithm ×1

list ×1