首页 > 解决方案 > 生成一个列表随机数消除Python中另一个列表中的随机数

问题描述

我想生成第一个列表中不存在的随机数列表。保持列表的大小与第一个相似。我已经完成了 R 如下。例子:

bb <- 样本(1:25,10)

bb

[1] 11 19 23 15 25 12 14 21 10 4

wd <- 样本((1:25)[-bb],10)

wd

[1] 13 1 5 9 22 3 2 24 7 16

我希望在 python 中复制同样的东西。我尝试了几种无用的方法。

请帮助..提前感谢

标签: pythonnumpyrandom

解决方案


你可以尝试这样的事情:

import random

l1 = [11, 19, 23, 15, 25, 12, 14, 21, 10, 4]
l2 = []

while len(l2) < len(l1):
    while True:
        r = random.randint(1, 25)
        if r not in l1 and r not in l2: 
            l2.append(r)
            break
        
print(l2) #==> [16, 20, 2, 9, 3, 18, 6, 24, 17, 7]

推荐阅读