如何倒数for for循环?

时间:2015-03-27 02:06:59

标签: python

在Java中,我有以下for循环,我正在学习Python:

for (int index = last-1; index >= posn; index--)

对于大多数熟悉Python的人来说,我的问题很简单,而且可能很明显。我想在Python中编写'for'循环代码。我怎么能这样做?

我尝试执行以下操作:

for index in range(last-1, posn, -1):

我认为它应该是range(last-1, posn + 1, -1)。我是对的吗?

我很感谢能够向我解释如何理解Python中的索引的人。

4 个答案:

答案 0 :(得分:29)

python中的range函数具有以下语法:

range(start, end, step)

它具有与python列表相同的语法,其中start是包含但是end是独占的。

因此,如果您想从5到1进行计数,则可以使用range(5,0,-1),如果您想从last计算到posn,则可以使用range(last, posn - 1, -1)。< / p>

答案 1 :(得分:11)

在python中,当你有一个iterable时,通常你会迭代而没有索引:

letters = 'abcdef' # or a list, tupple or other iterable
for l in letters:
    print(l)

如果你需要以相反的顺序遍历iterable,你可以这样做:

for l in letters[::-1]:
    print(l)

当您因任何原因需要索引时,可以使用enumerate

for i, l in enumerate(letters, start=1): #start is 0 by default
    print(i,l)

您也可以按相反顺序枚举......

for i, l in enumerate(letters[::-1])
    print(i,l)

另一个注意......

通常当我们遍历一个iterable时,我们会对每个元素应用相同的过程或函数。在这些情况下,最好使用map

如果我们需要对每封信件进行首映:

map(str.upper, letters)

或者获取每个字母的Unicode代码:

map(ord, letters)

答案 2 :(得分:4)

首先我建议您尝试使用打印并观察操作:

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

结果:

0
1
2
3
4

您可以理解功能原理。 实际上,range扫描范围是从05-1。 它等于0 <= i < 5

当你真正理解python中的for循环时,我认为我们回到业务的时候了。让我们关注您的问题。

你想在python中使用DECREMENT for循环。 我建议使用for循环教程。

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

结果:

5
4
3
2
1

因此可以看出,它等于5 >= i > 0

你想在python中实现你的java代码:

for (int index = last-1; index >= posn; index--)

它应编码:

for i in range(last-1, posn-1, -1)

答案 3 :(得分:1)

如果你谷歌。 “倒数为循环python”你得到这些,这是非常准确的。

how to loop down in python list (countdown)
Loop backwards using indices in Python?

我建议在发布之前进行小搜索。此外,“学习Python艰难之路”是一个很好的起点。