我可以在下面看到一些Python代码,但我不知道它的用途/用途是什么?任何回复将不胜感激!
r = []
r[:] = [r, r, None]
>>> r
>>> [[...], [...], None]
答案 0 :(得分:2)
r = []
这很容易。将r
设置为新的空列表。
r[:] = [r, r, None]
[r, r, None]
是一个列表,其中包含对r
引用的列表的两个引用,以及None
值。
r[:] =
将r
引用的现有列表的所有元素替换为作业的右侧。
结果是r
引用了包含对自身的引用的列表。
>>> r >>> [[...], [...], None]
...
符号表示Python发现了一个无限循环,而不是沿着鼠洞移动,它只是打印...
。
此代码的目的不明确 - 我最初的反应是#34;也许是国际混淆的Python竞赛的入口?"
答案 1 :(得分:2)
>>> r = []
>>> r[:] = [r, r, None] # You do this
您正在将r分配给r,这是一种循环链接
尝试访问第0个索引,您将看到此
>>> r[0]
[[...], [...], None]
>>> r[0][0]
[[...], [...], None]
>>> r[0][0][0]
[[...], [...], None]
证明:尝试在
上打印r和r [0]以及sooo的ID>>> id(r[0][0][0])
4508668632
>>> id(r[0][0][0][0])
4508668632
>>> id(r[0][0][0][0][0])
4508668632