Jak zdobyć pozycję elementu na liście?

Iteruję po liście, chcę otrzymać indeks elementu, jeśli spełnia on określony warunek. Jak mogę to zrobić?

przykład:

testlist = [1,2,3,5,3,1,2,1,6]
for item in testlist:
    if item == 1:
        print position

1 odpowiedź

 [i for i,x in enumerate(testlist) if x == 1]

przykład:

>>> testlist
[1, 2, 3, 5, 3, 1, 2, 1, 6]
>>> [i for i,x in enumerate(testlist) if x == 1]
[0, 5, 7]

Ok, chcesz wyrażenie generatora, będziemy mieli wyrażenie generatora. Oto znowu lista, w pętli for:

>>> for i in [i for i,x in enumerate(testlist) if x == 1]:
...     print i
... 
0
5
7

Teraz zbudujemy generator ...

>>> (i for i,x in enumerate(testlist) if x == 1)
<generator object at 0x6b508>
>>> for i in (i for i,x in enumerate(testlist) if x == 1):
...     print i
... 
0
5
7

i elegancko, możemy przypisać to do zmiennej i użyć jej:

>>> gen = (i for i,x in enumerate(testlist) if x == 1)
>>> for i in gen: print i
... 
0
5
7

Twoja odpowiedź

Zaloguj się aby odpowiedzieć.

Operiada

Operiada to polskojęzyczne forum informatyczne działające na zasadzie pytań i odpowiedzi.

Obserwowane tagi

Zaloguj się aby obserwować tagi.