请问为何两次不同的循环得到的随机列表是样的
我在做23回的动动手 要从88×88的随机二维列表里 找到输入值并打印下标
我心想第一步是做一个88×88的随机二位列表
再想就是 先做个5×5的试试 结果怎么都弄不出来
倒是可以获得一个五元素的随机列表 可以做二维列表的时候 row里的列表怎么搞都是一样
然后我试着 在段代码里 做两次 五元素随机列表 结果做出来 还是一样的
请问为啥还是一样呢?
请问做随机列表做两次 为啥做出来的列表还是一样呢那做5次 做88次 不得都重样
import random
row = []
column = []
i = 0
while i < 5:
#循环1开始
eli_column = random.randint(0,1025)
i += 1
column.append(eli_column)
#以上循环生成一个五个数的列表
row.append(column)
#大列表加入一个随机列表
while i < 5:
#循环2开始
eli_column = random.randint(0,1025)
i += 1
column.append(eli_column)
#再生成了一个随机列表
row.append(column)
#把两个随机列表加入row列表中
print(row)
我想 这样应该就可以在row列表中 加入两个不一样的 五元素 随机列表了
得到的结果 却是 两次生成的随机列表一摸一样
import random
row = []
column = []
i = 0
j = 0
while j < 5:
while i < 5:
eli_column = random.randint(0,1025)
i += 1
column.append(eli_column)
#以上循环生成一个五个数的列表
row.append(column)
#大列表加入一个随机列表
j += 1
#循环五次
print(row)
重复五次 结果得到的五个一摸一样的列表
这究竟是怎么回事啊 晕了
本帖最后由 歌者文明清理员 于 2023-5-3 02:14 编辑
在您的代码中,问题在于 column 列表只被创建了一次,然后多次添加到 row 列表中。这意味着每次添加到 row 的都是同一个列表对象的引用。因此,当随机数生成器创建并填充列时,所有之前放入 row 中的列表都已经更改了。
要解决这个问题,请将行和列的创建放入嵌套循环中,以便为每个索引位置创建一个唯一且独立的列:
import random
row = []
for i in range(5):
column = []
for j in range(5):
eli_column = random.randint(0, 1025)
column.append(eli_column)
row.append(column)
print(row)
现在,如果多次运行此代码,您应该会得到不同的随机列表。 歌者文明清理员 发表于 2023-5-3 02:04
在您的代码中,问题在于 column 列表只被创建了一次,然后多次添加到 row 列表中。这意味着每次添加到 row...
这么卷? 歌者文明清理员 发表于 2023-5-3 02:04
在您的代码中,问题在于 column 列表只被创建了一次,然后多次添加到 row 列表中。这意味着每次添加到 row...
你一说我就明白了 自己折腾半天 谢啦 isdkz 发表于 2023-5-3 02:10
这么卷?
卷到底是啥意思来着 歌者文明清理员 发表于 2023-5-3 02:13
卷到底是啥意思来着
就是很勤奋的意思 isdkz 发表于 2023-5-3 02:17
就是很勤奋的意思
明天我可不能这样了,不然后天上学会…… 我又来白嫖了
页:
[1]