我有一份清单清单:
>>> 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)
当列表包含常量时,上述工作正常,但上面没有工作.我错过了什么?
问题是它的list.index()工作原理也基于相等性,而不是基于同一性,因此它返回列表中第一个相等元素的索引。
对于列表,首先检查它们是否是完全相同的列表(也就是说,如果比较的两个列表是相同的列表对象,则它立即返回 True),否则它基于它包含的所有元素的相等性,即如果两个列表的所有元素的顺序相同,则这些列表相等,因此空列表始终相等。例子 -
>>> a = []
>>> b = []
>>> a == b
True
>>> a is b
False
Run Code Online (Sandbox Code Playgroud)