Python:当我们不需要重复的随机样本时如何使用随机样本

2023-12-11

My Code

import random

MyList = [[1,2,3,4,5,6,7,8],[a,s,d,f,g,h,h],[q,w,e,r,t,y]]
MyListRandom = []
random_number = 5
i=0
while True:
     random_list = randint(0,len(MyList))
     element_random = random.sample(MyList[random_list], 1)
     if element_random[0] not in MyListRandom:
     i = i+1
     MyListRandom.append(element_random[0])
else:
    continue 
if(i>=random_number):
    break

如果我不想使用此代码来检查它

 if element_random[0] not in MyListRandom:
     MyListRandom.append(element_random[0])

如果我不想重复样本,还有比这更好的方法吗?


来自文档 random.sample(MyList)将会从列表中的项目中为您提供独特的答案。对于您从中采样的 MyList 中的重复项,您可以将其设为set.

另外,您不需要每个样本都循环,您只需给它一个 k 参数,它就会返回 k 个随机样本。所以整个代码可以写成:

# I have flatten the whole list into one list 
element_random = random.sample(set([item for sublist in MyList for item in sublist]), 5)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python:当我们不需要重复的随机样本时如何使用随机样本 的相关文章

随机推荐