列表列表中内部列表的索引

May*_*ank 5 python list

我有一份清单清单:

>>> a = [list() for i in range(0, 5)]
>>> a
[[], [], [], [], []]
Run Code Online (Sandbox Code Playgroud)

我将一个内部列表的地址存储在一个变量中:

>>> c = a[4]
Run Code Online (Sandbox Code Playgroud)

现在我希望能够以这种方式检索c(= 4)的索引,但它不起作用:

>>> a.index(c)
0 
Run Code Online (Sandbox Code Playgroud)

当列表包含常量时,上述工作正常,但上面没有工作.我错过了什么?

Ana*_*mar 4

问题是它的list.index()工作原理也基于相等性,而不是基于同一性,因此它返回列表中第一个相等元素的索引。

对于列表,首先检查它们是否是完全相同的列表(也就是说,如果比较的两个列表是相同的列表对象,则它立即返回 True),否则它基于它包含的所有元素的相等性,即如果两个列表的所有元素的顺序相同,则这些列表相等,因此空列表始终相等。例子 -

>>> a = []
>>> b = []
>>> a == b
True
>>> a is b
False
Run Code Online (Sandbox Code Playgroud)