【问题标题】:Python - Random.sample from a range with excluded values (array)Python - 来自具有排除值(数组)的范围内的 Random.sample
【发布时间】:2022-11-23 08:54:12
【问题描述】:

我目前正在使用 random.sample 函数从总体中提取个体。

前任:

n = 范围 (1,1501)

结果 = random.sample(n, 500) 打印(结果)

在这个例子中,我在 1500 人中画了 500 人。到目前为止,还不错。

现在,我想更进一步,使用排除人员列表启动搜索。

排除 = [122,506,1100,56,76,1301]

所以我想得到一个人的列表(1494 人)同时排除这个数组(排除)

我必须承认我被困在这个问题上。你有想法吗 ? 先感谢您!

我正在学习 Python 语言。我做了很多运动来训练。尽管如此,我还是阻止了这个。

【问题讨论】:

  • 你为什么不:如果随机抽取是排除值之一,请重新抽取?
  • 你能在取样前排除吗?

标签: python random


【解决方案1】:
exclude = {122, 506, 1100, 56, 76, 1301}
result = random.sample([k for k in range(1, 1501) if k not in exclude], 500)

# check
assert set(result).isdisjoint(exclude)

稍微快一点(但对我来说有点复杂):

result = random.sample(list(set(range(1, 1501)).difference(exclude)), 500)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多