鱼C论坛

 找回密码
 立即注册
查看: 1877|回复: 7

[已解决]请问为何两次不同的循环得到的随机列表是样的

[复制链接]
发表于 2023-5-3 02:02:18 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x

我在做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:04:55
本帖最后由 歌者文明清理员 于 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)
现在,如果多次运行此代码,您应该会得到不同的随机列表。
循环结果相同.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-5-3 02:04:55 | 显示全部楼层    本楼为最佳答案   
本帖最后由 歌者文明清理员 于 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)
现在,如果多次运行此代码,您应该会得到不同的随机列表。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-3 02:10:19 | 显示全部楼层
歌者文明清理员 发表于 2023-5-3 02:04
在您的代码中,问题在于 column 列表只被创建了一次,然后多次添加到 row 列表中。这意味着每次添加到 row  ...

这么卷?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-5-3 02:10:37 | 显示全部楼层
歌者文明清理员 发表于 2023-5-3 02:04
在您的代码中,问题在于 column 列表只被创建了一次,然后多次添加到 row 列表中。这意味着每次添加到 row  ...

你一说我就明白了 自己折腾半天 谢啦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-3 02:13:21 | 显示全部楼层

卷到底是啥意思来着
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-3 02:17:56 | 显示全部楼层

就是很勤奋的意思
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-3 02:19:54 | 显示全部楼层
isdkz 发表于 2023-5-3 02:17
就是很勤奋的意思

明天我可不能这样了,不然后天上学会……
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-3 14:09:09 | 显示全部楼层
我又来白嫖了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-23 11:16

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表