Random.shuffle 令人惊讶的是在循环内不起作用

Random.shuffle surprisingly doesn't work inside loop

Random.shuffle 令人惊讶的是在循环内不起作用,它总是产生相同的随机列表,但我需要 19 个 不同的 列表:

for i in range(19):
    random.seed() #random.randint(1, 50)
    random.shuffle(candidates_random_list)
    random.seed()
    candidates_full_list.append(candidates_random_list)
print('candidates_full_list ----- \n\n ')
pprint(candidates_full_list)

我看了很多教程,预计 seed() 会解决这个问题,但我认为这是不当行为。每 运行 它随机播放,但不循环播放。

shuffle 就位,您的列表包含 19 个对同一列表的引用,而不是每次随机播放产生的单独列表。

改为存储随机列表的副本。

for i in range(19):
    random.shuffle(candidates_random_list)
    candidates_full_list.append(candidates_random_list[:])