飞花落尽 发表于 2021-7-10 09:50:15

课后作业23,没懂,谁能详细解释一下第5题

>>> s =
>>> s.append(s)
请问下面代码执行后,列表 s 的内容是什么?

你得理解将变量与数据进行挂钩的这个行为,我们称之为引用和在列表的最后添加一个元素,并且其内容是指向 s,即自身这两句话都不是很理解

我的答案是],不合理之处在哪?望详解!!!(只学过Python)

Twilight6 发表于 2021-7-10 09:50:16


这就是无限“套娃” , 自己套自己,自己套自己,s 开始时为 ,而后将 s 加入 s 自身列表中去列表发生改变

而 s 列表中又有 s 列表本身,s 列表本身中又 有 s 列表,也就是 s = ]]]] 这样无限嵌套下去

你的答案,只是将 这个列表加入了 s 中去,而不是 s 本身加入 s 中去

要知道列表是可变元素,你将列表 添加其本身,本身的 s 同时发生改变,而不是最开始的 了,所以大致嵌套是这样:

s = --> s = ] --> s = ]] -->s = ]]] --> s = ]

飞花落尽 发表于 2021-7-10 10:41:00

Twilight6 发表于 2021-7-10 10:27
这就是无限“套娃” , 自己套自己,自己套自己,s 开始时为 ,而后将 s 加入 s 自身列表中去列表发 ...

也就是说append方法可以不用for 和while 语句自身形成循环吗?

Twilight6 发表于 2021-7-10 10:47:48

飞花落尽 发表于 2021-7-10 10:41
也就是说append方法可以不用for 和while 语句自身形成循环吗?



不是的呀,这里只是把自身添加入自身产生的一种特殊情况,相当于无限嵌套,不是无限添加

就好比你是自身访问自身,而自身中又有自身,你就又访问自身的自身中的自身..... 这样导致的无限嵌套列表

>>> s
]

>>> s
1

>>> s
]

>>> s
1

>>> s
]

飞花落尽 发表于 2021-7-10 10:54:36

Twilight6 发表于 2021-7-10 10:47
不是的呀,这里只是把自身添加入自身产生的一种特殊情况,相当于无限嵌套,不是无限添加

就好比你 ...

嗯,这种特殊情况不称做循环,叫嵌套是吧?

Twilight6 发表于 2021-7-10 10:56:02

飞花落尽 发表于 2021-7-10 10:54
嗯,这种特殊情况不称做循环,叫嵌套是吧?

嗯嗯~
页: [1]
查看完整版本: 课后作业23,没懂,谁能详细解释一下第5题