鱼C论坛

 找回密码
 立即注册
查看: 795|回复: 2

pothon小白求助

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

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

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

x
1.png
triangle = []
for i in range(10):
    triangle.append([])
    for j in range(10):
        triangle[i].append(0)
这个 triangle.append(0) 是将二维列表中i行所有值初始化为0的意思嘛?
那为什么不增添一个将j也初始化为0的代码呢
一个i就能管住i和j两个变量了吗
[/i]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-3-5 11:12:13 | 显示全部楼层
首先,你的代码中有一些问题。首先,你没有给`triangle`赋值一个空列表,所以在使用`append`方法之前,应该将`triangle`设置为一个空列表。其次,在每次迭代时,你需要在`append`方法中指定要添加的元素。

关于你的问题,`triangle.append(0)`的作用是将一个整数0添加到列表`triangle`的末尾。它并不会将整个i行初始化为0,而只是在每一行的末尾添加一个0。这样,每一行就会以0结尾。

如果你想将每一行都初始化为0,可以在外层循环内添加一个新的空列表,并将其作为整行添加到`triangle`中。如下所示:
triangle = []
for i in range(10):
    row = []
    for j in range(10):
        row.append(0)
    triangle.append(row)

这段代码首先创建一个空列表`row`,然后在内层循环中将0添加到`row`。在内层循环结束后,将完整的`row`添加到`triangle`中。这样就可以将每一行都初始化为0了。

对于你的第二个问题,一个变量是可以同时管理多个值的。在这里,`i`确实可以同时控制内层循环的`j`变量。内层的`for j in range(10)`循环会在每次外层循环迭代时都执行10次,所以`j`的取值是从0到9。这是因为每一次外层循环迭代时,内层循环会重新开始,并从0开始计数。

希望我的解答能帮到你!如有其他问题,请随时提问。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-3-5 15:56:26 | 显示全部楼层
问题出在了第二个for循环内部,应该使用triangle[i].append(0),而不是triangle.append(0)。

因为triangle.append(0)将会在triangle列表的末尾添加一个新的0,而不是在子列表中添加。

正确的初始化应该是在每一个子列表中添加一个0。

此外,for j in range(10):循环是用来初始化第i行的10个元素,而不是初始化j。

i和j是两个独立的变量:i控制行,j控制列。

正确的代码应该如下:
triangle = []
for i in range(10):
    # 添加一个新的空列表,代表一个新的行
    triangle.append([])
    for j in range(10):
        # 初始化当前行的每个列元素为0
        triangle[i].append(0)
这样,triangle就是一个10x10的二维列表,其中每个元素都被初始化为0了。

i是行索引,j是列索引,两者都需要分别控制。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-23 14:53

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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