将循环的C样式转换为python

将循环的C样式转换为python,python,for-loop,idioms,Python,For Loop,Idioms,如何将c风格的for循环转换为python for (int i = m; i >= lowest; i--) 我想到的最好的办法是: i = mid for i in range(i, low,-1): m循环从何处开始 l循环停止的位置,范围不包括最后一项,因此l-1和 -1用于反向阵列 for i in range(m, l-1, -1): 请记住范围不包括停止参数 range(...) range(stop) -> list of integers ra

如何将c风格的for循环转换为python

for (int i = m; i >= lowest; i--)
我想到的最好的办法是:

i = mid
for i in range(i, low,-1):

m
循环从何处开始

l
循环停止的位置,范围不包括最后一项,因此
l-1

-1
用于反向阵列

for i in range(m, l-1, -1):
请记住
范围
不包括
停止
参数

range(...)
    range(stop) -> list of integers
    range(start, stop[, step]) -> list of integers
此代码与C代码之间的区别在于,在Python
2
中,
range
正在内存中构造一个
列表
,因此对于非常大的范围,这可能是一个问题。将
range
替换为
xrange
不会在内存中建立一个列表并使代码几乎相同。在Python
3
中,这个问题不再存在

m = 20
low = 10

for i in range(m, low - 1, -1):
    print i
这将按预期进行倒计时:

20
19
18
17
16
15
14
13
12
11
10

接受三个参数,一个开始、一个停止和每个步骤之间的增量。

在可能的情况下,Python习惯用法是直接循环项目,而不是通过项目计数。因此,一种惯用的倒计时方法是对反向(列表)中的项目进行倒计时:打印项目,或对某个列表[m:lower-1:-1]

如果您在项目上循环,并且还需要一个计数器,Python可以在循环时使用
enumerate()
生成计数索引号<代码>对于索引,枚举中的值(someList):


这样做并不总是可能的,有时你在数数,除了数字之外,没有检查任何其他数据,
range()
,正如其他答案所示。但是当你有一个
for(inti=…
循环时,看看是否可以将它更改为直接作用于数据。用Python编写“C”对任何人来说都没有乐趣。

嘿!你回来了。;-)
20
19
18
17
16
15
14
13
12
11
10