我有一份清单清单:
>>> a = [list() for i in range(0, 5)]
>>> a
[[], [], [], [], []]
我将一个内部列表的地址存储在一个变量中:
>>> c = a[4]
现在我希望能够以这种方式检索c(= 4)的索引,但它不起作用:
>>> a.index(c)
0
当列表包含常量时,上述工作正常,但它不能在上面工作。我错过了什么?
答案 0 :(得分:4)
问题是list.index()
也基于相等而不是身份,因此它返回列表中第一个相等元素的索引。
对于列表,通过首先检查它们是完全相同的列表来检查相等性(即如果两个列表被比较的是相同的列表对象,它立即返回True)否则它基于它包含的所有元素的相等性,也就是说,如果两个列表具有相同顺序的所有元素,那么这些列表是相等的,因此空列表总是相等的。示例 -
>>> a = []
>>> b = []
>>> a == b
True
>>> a is b
False