2012-03-01 7 views
37

에 파이썬에서 할 필요가 동일 :카운트 인덱스는 파이썬

for (i = 0; i < 5; i++) {cout << i;} 

그러나 나는이 목록에 요소의 인덱스를 얻을 수 파이썬에서 사용하는 방법을 모른다 . 당신이 어떤 주어진 목록을 가지고, 그 항목 인덱스를 반복하려면

+0

어떤 요소가 있습니까? 무슨 목록? – Sean

+0

나는 목록을 작성하지 않았다. 필요한 것은 단순히 목록의 요소 색인을 얻는 것입니다. 일반적으로 C++ 또는 Java에서 FOR를 사용하여이 정보를 얻습니다. 이 경우리스트가 [ "a", "b", "c"]라고 가정하면 a, b 및 c의 인덱스 (0, 1 및 2)가 필요합니다. –

+3

duplicate of http://stackoverflow.com/questions/522563/accessing-the-index-in-python-for-loops – WolframH

답변

58

, 당신은 enumerate() 사용할 수 있습니다 만 인덱스를해야하는 경우 사용할 수 있습니다

for index, item in enumerate(my_list): 
    print index, item 

range() :

for i in range(len(my_list)): 
    print i 
+0

이 경우 range() 대신 xrange()를 사용하는 것이 더 좋습니다;) – n1r3

+0

'range (len (my_list))'는 피해야하나요? (나를 위해, 나는'열거한다 '하지만'인덱스 만 사용하라'). – neizod

+0

@ n1r3 :'range()'를'xrange()'보다 먼저 가르치는 것이 더 좋습니다. –

0

이것은?

for i in range(0,5): 
print(i) 
+0

이것은 내가 항상 5 가지 항목을 갖게된다는 것을 이미 알고 있기 때문에 나에게 도움이 될 것입니다. :)하지만 다른 경우에는 요소 수를 알 수없는 인덱스를 가져와야합니다. –

8

사용 enumerate :

>>> l = ['a', 'b', 'c', 'd'] 
>>> for index, val in enumerate(l): 
... print "%d: %s" % (index, val) 
... 
0: a 
1: b 
2: c 
3: d 
9

경우 기존 목록이 있고 그 위에 루프에 원하는 당신이 enumerate 기능을 사용할 수있는 인덱스를 추적. 다른 답변을 additon에서

l = ["apple", "pear", "banana"] 
for i, fruit in enumerate(l): 
    print "index", i, "is", fruit 
0

예를 들어 - 매우 자주, 당신은 인덱스를 사용하여 반복 할 필요는 없습니다하지만 당신은 단순히를위한 각각의 표현을 사용할 수 있습니다

my_list = ['a', 'b', 'c'] 
for item in my_list: 
    print item 
+0

이 경우 인덱스가 아닌 항목을 반환합니다. =/ –

+0

right - enumerate()를 사용하거나 범위의 인덱스 (len (my_list))에 대해 – alex

16

그냥 사용

for i in range(0, 5): 
    print i 

데이터 세트를 반복하고 각 값을 인쇄하십시오.

대용량 데이터 세트의 경우 매우 유사한 서명이있는 xrange를 사용하려고하지만 더 큰 데이터 세트의 경우 더 효과적으로 작동합니다. http://docs.python.org/library/functions.html#xrange

1

내가 할 가장 간단한 방법은 다음과 같습니다.

i = -1 
for step in my_list: 
    i += 1 
    print(i) 

#OR - WE CAN CHANGE THE ORDER OF EXECUTION - SEEMS MORE REASONABLE 

i = 0 
for step in my_list: 
    print(i) #DO SOMETHING THEN INCREASE "i" 
    i += 1