Random.shuffle在循环内不起作用

2024-04-25 19:55:21 发布

您现在位置:Python中文网/ 问答频道 /正文

令人惊讶的是,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()能解决这个问题,但我认为这是一种错误行为。每次跑步都是洗牌,但不是循环


Tags: in列表forrangerandomfulllistseed
1条回答
网友
1楼 · 发布于 2024-04-25 19:55:21

shuffle已经就绪,并且您的列表包含对同一列表的19个引用,而不是每次无序排列产生的单独列表

而是存储一个无序列表的副本

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

相关问题 更多 >