一个计数器: Python for

Python - for with counter

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
Accessing the index in Python for loops

我想知道:Python有类似的东西吗?

1
for (i=0; i < length; i += 1){ .... }

当然,我可以说

1
2
3
4
i = 0
for item in items:
 #.....
 i += 1

但我认为应该有类似于for(i = 0;...)的东西,不是吗?


使用enumerate()函数:

1
2
for i, item in enumerate(items):
     print i, item

或使用range()

1
2
for i in range(len(items)):
     print i

在你使用Python 2而不是xrange())。

range()吧,你i降压步骤通过在比其他1为好:

1
2
3
4
>>> list(range(0, 5, 2))
[0, 2, 4]
>>> list(range(4, -1, -1))
[4, 3, 2, 1, 0]

你通常不需要使用一个指数序列;困境与itertools图书馆或reversed()函数;最值usecases '特别是指数级担保:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
>>> menu = ['spam', 'ham', 'eggs', 'bacon', 'sausage', 'onions']
>>> # Reversed sequence
>>> for dish in reversed(menu):
...     print(dish)
...
onions
sausage
bacon
eggs
ham
spam
>>> import itertools
>>> # Only every third
>>> for dish in itertools.islice(menu, None, None, 3):
...     print(dish)
...
spam
bacon
>>> # In groups of 4
>>> for dish in itertools.izip_longest(*([iter(menu)] * 4)):
...     print(dish)
...
('spam', 'ham', 'eggs', 'bacon')
('sausage', 'onions', None, None)


这是一个尝试研究成为语言的选择。大多数时间是在较低的水平,环通号码,这些号码是在一个序列可作为指标。我需要做的下一个号码,range应该使用内置函数,返回可迭代变量与所需的range([start], end, [step])输入值。

你需要一个或更多,这两个序列和他们的一项指标,在本案例中,应该使用builtn enumerateinstead:

1
2
for index, letter in enumerate("word"):
     print index, letter

和最后,在源语言(C和Java,PHP,JavaScript的,#目标C,C),for只是一些语法的语法糖(很粗)一个While循环,你可以在Python写同样的while循环。

而不是:你:for (start_expr, check_expr, incr_expr) { code_body}

1
2
3
4
start_expr
while check_expr:
    code_body
    incr_expr

它的工作原理是一样的。


1
2
for i in range(length):
    #do something

range是什么。