我有一个空列表,然后我正在创建一个循环链接并尝试按索引获取此列表,但得到 IndexError。为什么会这样?我应该有可能永远获得这个列表吗?如何从此列表中获取价值?
>>> a = []
>>> a = [a]
>>> len(a[0])
0
>>> a[0][0]
IndexError: list index out of range
你的列表不是循环的,它只是一个列表中的空列表。
>>> a = []
>>> a = [a]
>>> a
[[]]
>>> len(a)
1
>>> a[0]
[]
>>> len(a[0])
0
您似乎对作业的工作方式有误解。a = [a]
首先计算右侧([[]]
(,然后将名称a
绑定到该值。
您可以通过以下方式获得循环列表
>>> a = []
>>> a.append(a)
>>> a
[[...]]
当然它有长度一,因为a
只有一件事:a
。
>>> len(a)
1
发生这种情况是因为初始a
为空。在代码的第二行之后,您有:
a=[[]]
.因此,a[0] = []
,即一个空列表。a[0][0]
正在尝试访问空列表中的元素,这就是您看到错误的原因。