Python中的For循环

Zna*_*kus 5 python for-loop

在Python中执行此操作的最佳方法是什么?

for (v = n / 2 - 1; v >= 0; v--)
Run Code Online (Sandbox Code Playgroud)

我实际上是先尝试过谷歌,但据我所知,唯一的解决方案就是使用while.

hug*_*own 15

我会这样做:

for i in reversed(range(n // 2)):
    # Your code
    pass
Run Code Online (Sandbox Code Playgroud)

更清楚的是,这是一个反向序列,下限是什么,以及上限是多少.

  • 或者'逆转(xrange(...))`,这也有效. (3认同)
  • @hughdbrown:它确实有你认为我可能想到的好处.检查`dir(xrange)`输出并记下`__reversed__`特殊方法. (2认同)
  • @ΤΖΩΤΖΙΟΥ:我学到的东西.http://docs.python.org/library/functions.html#reversed解释说`reversed`可以使用`__reversed__`方法(如果存在) - 这样可以最佳地实现`xrange()`,如ΤΖΩΤΖΙΟΥ所暗示的那样.另见:http://www.python.org/dev/peps/pep-0322/ (2认同)

Tho*_*ers 13

这样做的方法是xrange():

for v in xrange(n // 2 - 1, -1, -1):
Run Code Online (Sandbox Code Playgroud)

(或者,在Python 3.x中,range()而不是xrange().)//是地板分区,它确保结果是整数.


Blu*_*eft 5

for v in range(n//2, -1, -1)
Run Code Online (Sandbox Code Playgroud)

但是,在90%的情况下,当您for在C/Java/C#/ VB中使用循环时,您真正想要的是列表理解:

listOfStuff = [doSomethingWith(v) for v in range(n//2, -1, -1)]
Run Code Online (Sandbox Code Playgroud)