Подсчет индексов с использованием «для» в Python - PullRequest
42 голосов
/ 02 марта 2012

Мне нужно сделать в Python так же, как:

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

, но я не знаю, как использовать FOR в Python, чтобы получить индекс элементов в списке.

Ответы [ 7 ]

72 голосов
/ 02 марта 2012

Если у вас есть какой-то определенный список, и вы хотите перебрать его индексы и , вы можете использовать enumerate():

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

Если вынужны только индексы, вы можете использовать range():

for i in range(len(my_list)):
    print i
21 голосов
/ 02 марта 2012

Просто используйте

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

, чтобы выполнить итерацию по вашему набору данных и напечатать каждое значение.

Для больших наборов данных вы хотите использовать xrange, который имеет очень похожую сигнатуру, ноработает более эффективно для больших наборов данных.http://docs.python.org/library/functions.html#xrange

14 голосов
/ 02 марта 2012

Если у вас есть существующий список, и вы хотите зациклить его и отслеживать индексы, вы можете использовать функцию enumerate. Например

l = ["apple", "pear", "banana"]
for i, fruit in enumerate(l):
   print "index", i, "is", fruit
8 голосов
/ 02 марта 2012

использовать перечислить :

>>> l = ['a', 'b', 'c', 'd']
>>> for index, val in enumerate(l):
...    print "%d: %s" % (index, val)
... 
0: a
1: b
2: c
3: d
2 голосов
/ 02 июля 2016

Самый простой путь, по которому я бы пошел, это:

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
0 голосов
/ 02 марта 2012

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

my_list = ['a', 'b', 'c']
for item in my_list:
    print item
0 голосов
/ 02 марта 2012

Это?

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