将循环的C样式转换为python
如何将c风格的for循环转换为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
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代码之间的区别在于,在Python2
中,range
正在内存中构造一个列表
,因此对于非常大的范围,这可能是一个问题。将range
替换为xrange
不会在内存中建立一个列表并使代码几乎相同。在Python3
中,这个问题不再存在
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