python - 如何存储从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]]
解决方案
在您的代码中:
while number < 5:
d_list.append(bd). #bd is the same and initialized one time
number += 1
您需要在一段时间内执行随机化器,以便每次都能真正拥有随机列表。
推荐阅读
- r - 过滤掉非英文文本
- python - 等宽字符边界框的确切尺寸是多少(特别是 courier new),我如何在 Python 中基于每个图像找到它?
- javascript - 模式中数组中的猫鼬更新对象
- c# - Word 加载项对象始终为空
- reactjs - 在 React 单元测试中将 void 方法作为对象的属性处理
- firewall - 如何屏蔽除欧洲、美国、加拿大和前苏联以外的所有国家?
- java - Spring批处理集成远程分区-运行并行作业
- makefile - 'make' 每隔一段时间就失败一次
- azure - 甲酸盐中的 Azure 数据流字符串到日期转换
- python - 如何创建一个函数来测试每个变量的正态性