Python 生成一个1到100000之间的x个随机整数的列表,每个整数最多只有10个副本

Python 生成一个1到100000之间的x个随机整数的列表,每个整数最多只有10个副本,python,for-loop,Python,For Loop,我正在尝试生成一个10万个唯一ID的数据集,即20年(即2001-2020年)中的1-10万个ID,其中每个ID每年列出0-10次,根据指数为0.5的幂律分布随机确定,因此在任何给定年份,所有ID中的一半没有条目,四分之一的ID有一次访问,等等 到目前为止,我有: randomlist = [] for i in range(0,100000): n = random.randint(1,100000) randomlist.append(n) print(randomlist)

我正在尝试生成一个10万个唯一ID的数据集,即20年(即2001-2020年)中的1-10万个ID,其中每个ID每年列出0-10次,根据指数为0.5的幂律分布随机确定,因此在任何给定年份,所有ID中的一半没有条目,四分之一的ID有一次访问,等等

到目前为止,我有:

randomlist = []
for i in range(0,100000):
    n = random.randint(1,100000)
    randomlist.append(n)
print(randomlist)
但是,这只创建一个整数列表,不考虑幂律分布的条件,也不考虑任何时间元素


非常感谢您的帮助

您可以反复循环,直到生成列表

randomlist = []
x = 100000
counter = 0

while(counter<x):
    n = random.randint(1,100000)
    if(randomlist.count(n)>=10):
        continue
    else:
        randomlist.append(n)
        counter += 1

看看class collections.Counter。告诉我如何解决这个编码问题。我们希望您先做一个测试,然后问一个关于实现的具体问题。一个包含100000个数字的列表,每个数字的范围在1到100之间,绝对可以保证某些整数的重复数超过10个-事实上,每个整数平均会有一千个副本。我投票结束这个问题,因为它提出了相互矛盾的要求,并且没有试图解决它们。你是说RandInt1100000吗?
lst = list(range(1,100001)) * 10
randomlist = random.sample(lst,100000)