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 |
但我认为应该有类似于
使用
1 2 | for i, item in enumerate(items): print i, item |
或使用
1 2 | for i in range(len(items)): print i |
在你使用Python 2而不是
1 2 3 4 | >>> list(range(0, 5, 2)) [0, 2, 4] >>> list(range(4, -1, -1)) [4, 3, 2, 1, 0] |
你通常不需要使用一个指数序列;困境与
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) |
这是一个尝试研究成为语言的选择。大多数时间是在较低的水平,环通号码,这些号码是在一个序列可作为指标。我需要做的下一个号码,
你需要一个或更多,这两个序列和他们的一项指标,在本案例中,应该使用builtn
1 2 | for index, letter in enumerate("word"): print index, letter |
和最后,在源语言(C和Java,PHP,JavaScript的,#目标C,C),
而不是:你:
1 2 3 4 | start_expr while check_expr: code_body incr_expr |
它的工作原理是一样的。
1 2 | for i in range(length): #do something |