在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中复制同样的东西。我试过几种没用的方法。

请帮忙。。感谢Adavance

你可以试试这样的东西:

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]

假设您没有测试列表,您可以在python中使用random模块的sample函数,该函数将为您提供一个您喜欢的范围内的唯一元素列表和相应的所需元素数。

此外,您可以使用简单的while循环if条件来确保第二个列表中没有重复项。

相同的代码示例如下:

import random
n = int(input("Enter the length of the required list: "))
l1=random.sample(range(1,100), n)
l2=[]
while len(l2) < len(l1):
while True:
r = round(random.randint(1, 100))
if r not in l1 and r not in l2: 
l2.append(r)
break
print("List 1: ",l1) 
print("List 2: ",l2)

理想情况下,每次运行此脚本时都会得到两个唯一的列表。

样本输出:

List 1:  [14, 80, 55, 88, 4, 30, 82, 95, 23, 93]
List 2:  [49, 64, 78, 87, 8, 79, 31, 28, 51, 92]

最新更新