2015-09-28 11 views
5

我有一個列表的列表:指數的內部列表的

>>> a = [list() for i in range(0, 5)] 
>>> a 
[[], [], [], [], []] 

我存儲在一個變量內列表中的一個地址:

>>> c = a[4] 

現在我希望能夠找回C的指數(= 4)以這種方式,但它不工作:

>>> a.index(c) 
0 

當列表包含常數以上的作品,但它沒有在上面工作。我錯過了什麼?

+0

'a [4]'不是內部列表的地址,而是值。 – karakfa

回答

4

問題是list.index()也基於等同性而不是等同性,所以它返回列表中第一個等號的索引。

而對於列表通過首先檢查它們是否是完全相同的列表(即如果兩個列表進行比較是相同的列表對象,它立即返回True)來檢查相等性,否則它基於它包含的所有元素的相等性,即如果兩個列表的所有元素的順序相同,那麼這些列表是相等的,因此空列表總是相等的。示例 -

>>> a = [] 
>>> b = [] 
>>> a == b 
True 
>>> a is b 
False