将C样式for循环转换为python

kk1*_*156 2 python for-loop idioms idiomatic

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

for (int i = m; i >= lowest; i--)
Run Code Online (Sandbox Code Playgroud)

我想出的最好的是:

i = mid
for i in range(i, low,-1):
Run Code Online (Sandbox Code Playgroud)

jam*_*lak 5

for i in range(m, low - 1, -1):
Run Code Online (Sandbox Code Playgroud)

请记住range,不包括stop参数.

range(...)
    range(stop) -> list of integers
    range(start, stop[, step]) -> list of integers
Run Code Online (Sandbox Code Playgroud)

这段代码和C代码之间的区别在于,在Python中2,a list正在内存中构建,range因此对于非常大的范围,这可能是一个问题.更换rangexrange不会在内存中构建列表和使代码几乎相同.在Python中,3此问题不再存在.