2015-09-28 18 views
5

Tôi có một danh sách liệt kê:Index của một danh sách bên trong một danh sách liệt kê

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

tôi lưu trữ địa chỉ của một trong những danh sách bên trong một biến:

>>> c = a[4] 

Và bây giờ Tôi hy vọng có thể lấy chỉ mục của c (= 4) theo cách này, nhưng nó không hoạt động:

>>> a.index(c) 
0 

Các công trình trên đây có chứa hằng số, nhưng không hoạt động ở trên. Tôi đang thiếu gì?

+0

'a [4]' không phải là địa chỉ của danh sách bên trong mà là giá trị thay thế. – karakfa

Trả lời

4

Vấn đề là list.index() cũng hoạt động dựa trên sự bình đẳng, không phải danh tính, vì vậy nó trả về chỉ mục cho phần tử bằng đầu tiên trong danh sách.

Và đối với danh sách bình đẳng được kiểm tra bằng cách kiểm tra đầu tiên cả hai danh sách giống nhau (nghĩa là nếu cả hai danh sách được so sánh là cùng một đối tượng danh sách, nó sẽ trả về giá trị True), nếu không nó được dựa trên sự bình đẳng của tất cả các phần tử , đó là nếu hai danh sách có tất cả các phần tử theo thứ tự như nhau, thì các danh sách đó đều bằng nhau, do đó danh sách trống luôn bằng nhau. Ví dụ -

>>> a = [] 
>>> b = [] 
>>> a == b 
True 
>>> a is b 
False 
Các vấn đề liên quan