首页 > 解决方案 > 如何存储从while循环中随机生成的二维列表?

问题描述

我无法将唯一的 1D 列表存储到 2D 列表中。

我无法将多个随机生成的列表存储到二维列表中。我可以生成 n 个唯一的 1D 生成列表,但是当我尝试将它们存储在 2D 列表中时,我得到相同的 1D 列表生成 n 次。

我在列表上使用了 append() 函数,但多次附加了相同的一维列表。

我使用了 extend() 函数,但它返回一个一维列表。

我不明白为什么在使用 shuffle() 函数时对象会出现别名。

import random
bd = list(range(10))
rng = random.Random()
rng.shuffle(bd)
d_list = []
number = 0 

while number < 5:
    d_list.append(bd)
    number += 1

print(d_list)

我希望结果是

[[6, 5, 3, 8, 2, 4, 0, 9, 1, 7],[7, 6, 9, 8, 5, 3, 4, 0, 2, 1], [2, 1, 0, 7, 3, 8, 6, 5, 4, 9], [1, 2, 7, 0, 3, 4, 5, 6, 8, 9], [7, 6, 3, 8, 4, 5、1、9、0、2] ]

但结果是

[[7, 6, 3, 8, 4, 5, 1, 9, 0, 2], [7, 6, 3, 8, 4, 5, 1, 9, 0, 2], [7, 6, 3, 8, 4, 5, 1, 9, 0, 2], [7, 6, 3, 8, 4, 5, 1, 9, 0, 2], [7, 6, 3, 8, 4, 5、1、9、0、2]]

标签: python

解决方案


在您的代码中:

while number < 5:
    d_list.append(bd). #bd is the same and initialized one time
    number += 1

您需要在一段时间内执行随机化器,以便每次都能真正拥有随机列表。


推荐阅读