Python Random没有重复

use*_*068 2 python random list

这是我的代码,我试图用0到6之间的7个数字填充列表,没有重复,每次都是随机顺序.这是我的代码,但我一直收到错误"列表分配索引超出范围",我不知道我的错误在哪里.这是我的代码:

    import random
def generate():
    listA = []
    for x in range(0,6):
        listA[x] = random.sample(range(6), 1)
generate()
print(listA)
Run Code Online (Sandbox Code Playgroud)

g.d*_*d.c 5

只有shuffle结果才会更有效range.

>>> from random import shuffle
>>>
>>> r = range(7)
>>> shuffle(r)
>>> r
[5, 3, 6, 4, 1, 0, 2]
Run Code Online (Sandbox Code Playgroud)

请注意,在Python 3中,您必须显式转换r为列表:

>>> r = list(range(7))
Run Code Online (Sandbox Code Playgroud)