How to get item's position in a list?
--------------------------------------------------
Rise to the top 3% as a developer or hire one of them at Toptal: https://topt.al/25cXVn
--------------------------------------------------
Music by Eric Matyas
https://www.soundimage.org
Track title: Lost Jungle Looping
--
Chapters
00:00 How To Get Item'S Position In A List?
00:20 Accepted Answer Score 302
01:13 Answer 2 Score 199
01:42 Answer 3 Score 43
01:53 Answer 4 Score 11
02:04 Answer 5 Score 6
02:13 Thank you
--
Full question
https://stackoverflow.com/questions/3646...
--
Content licensed under CC BY-SA
https://meta.stackexchange.com/help/lice...
--
Tags
#python #list
#avk47
    Rise to the top 3% as a developer or hire one of them at Toptal: https://topt.al/25cXVn
--------------------------------------------------
Music by Eric Matyas
https://www.soundimage.org
Track title: Lost Jungle Looping
--
Chapters
00:00 How To Get Item'S Position In A List?
00:20 Accepted Answer Score 302
01:13 Answer 2 Score 199
01:42 Answer 3 Score 43
01:53 Answer 4 Score 11
02:04 Answer 5 Score 6
02:13 Thank you
--
Full question
https://stackoverflow.com/questions/3646...
--
Content licensed under CC BY-SA
https://meta.stackexchange.com/help/lice...
--
Tags
#python #list
#avk47
ACCEPTED ANSWER
Score 302
Hmmm. There was an answer with a list comprehension here, but it's disappeared.
Here:
 [i for i,x in enumerate(testlist) if x == 1]
Example:
>>> testlist
[1, 2, 3, 5, 3, 1, 2, 1, 6]
>>> [i for i,x in enumerate(testlist) if x == 1]
[0, 5, 7]
Update:
Okay, you want a generator expression, we'll have a generator expression. Here's the list comprehension again, in a for loop:
>>> for i in [i for i,x in enumerate(testlist) if x == 1]:
...     print i
... 
0
5
7
Now we'll construct a 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
and niftily enough, we can assign that to a variable, and use it from there...
>>> gen = (i for i,x in enumerate(testlist) if x == 1)
>>> for i in gen: print i
... 
0
5
7
And to think I used to write FORTRAN.
ANSWER 2
Score 43
Use enumerate:
testlist = [1,2,3,5,3,1,2,1,6]
for position, item in enumerate(testlist):
    if item == 1:
        print position
ANSWER 3
Score 11
for i in xrange(len(testlist)):
  if testlist[i] == 1:
    print i
xrange instead of range as requested (see comments).
ANSWER 4
Score 6
Here is another way to do this:
try:
   id = testlist.index('1')
   print testlist[id]
except ValueError:
   print "Not Found"