在Java中,FOR循环语法提供了一个我们可以添加条件的地方。例如,在下面的代码中,条件是i * j< Ñ
for (i=0; i*j < n; i++)
{ ... }
在Python中,我们如何在for循环语句中添加这样的条件?
for i in range(n):
我知道我们可以在for循环中添加一个if语句,但我担心它会将运行时间增加到O(n)。请指教。
答案 0 :(得分:4)
for
的复杂度为O(n)
,因此if
不会改变复杂性。
Java中的for(i=0; i*j < n; i++)
由Python中的while
表示:
i = 0 # initialization
while i * j < n: # conditions
do_something
i += 1 # step
答案 1 :(得分:1)
当我从C切换到python时,这是我最大的担忧之一,但事实证明它实际上是对语法的误解。在python中,尽管你可以写for i in range(n)
,但这通常表明你正在做其他错误的事情。循环元素而不是数字被认为是更好的。举一个具体的例子,在C中,你可以写
for(i=0; i<len(str); i++){
str[i] blah blah blah
}
在python中你可能会这样做的方法是直接迭代字符:
for char in str:
char blah blah blah