首页 > 解决方案 > 如何生成没有重复成员的随机列表?

问题描述

a=[]
from random import randint as rd
for i in range(42):
    a.append(rd(1,42))
    j=0
    k=len(a)-1
    while(j<=k):
        while(a[i]==a[j]):
            a[i]=rd(1,42)
            j=0
        j=j+1

我无法弄清楚如何在 python 中生成完全唯一的随机列表。所有成员都必须是唯一的,并且不能以任何方式与列表中的任何其他成员相同

标签: pythonpython-3.x

解决方案


尝试这个:

import random
random.sample(range(100), 10)


In [1715]: random.sample(range(100), 10)
Out[1715]: [66, 48, 97, 5, 39, 67, 78, 96, 71, 19]

In [1716]: random.sample(range(100), 10)
Out[1716]: [50, 89, 60, 69, 81, 86, 27, 94, 4, 62]

这将生成一个包含 0 到 99 范围内的 10 个随机数的列表,没有重复。


推荐阅读