2014-10-09 2 views
0

Я новичок в python ... Извините, если мой вопрос звучит слишком дилетантски.Как получить заказ элемента в списке?

my_list = [1, 2, 3, 4] 

Мне нужна функция, которая дает мне позицию (или индекс, когда я даю ему пункт)

, например, индекс 4 будет 3 ..

+0

Возможный дубликат [Поиск индекса элемента, указанного в списке, содержащем его в Python] (http://stackoverflow.com/questions/176918/finding-the-index-of-an-item-given- a-list-contains-it-in-python) – albciff

ответ

2

http://www.tutorialspoint.com/python/list_index.htm

>>> my_list = [1, 2, 3, 4] 
>>> my_list.index(4) 
3 

Индекс встроенного метода списка возвращает позицию индекса первого значения d, который указан в аргументе метода индекса.

+1

И вы можете сделать «[i для i, j в перечислении (my_list), если j == valueToFind]», чтобы получить массив индексов, когда есть несколько значений – user3885927

0

если вам нужна дополнительная альтернатива для доступа к списку, вы можете создать кортеж пару индекса и значения

>>> l = list(enumerate([1, 2, 3, 3, 4, 4]))    
>>> l 
[(0, 1), (1, 2), (2, 3), (3, 3), (4, 4), (5, 4)] 

С списком кортежей, вы можете получить доступ или фильтр на основе индекса или значений Например:

Фильтр: Возврат все индексы со значением = 3

>>> [tup[0] for tup in l if tup[1]==3] 
[2, 3] 
>>> [tup for tup in l if tup[1]==3] 
[(2, 3), (3, 3)] 

Фильтр: возвращаемое значение индекса = 3

>>> [tup[1] for tup in l if tup[0]==4] 
[4]