【问题标题】:How to add a condition in Python for loop [duplicate]如何在Python for循环中添加条件[重复]
【发布时间】:2017-01-02 07:27:05
【问题描述】:

在 Java 中,FOR 循环语法提供了一个可以添加条件的地方。例如,在下面的代码中,条件是 i*j

for (i=0; i*j < n; i++) 
{ ... }

在 Python 中,我们如何在 for 循环语句中添加这样的条件?

for i in range(n):

我知道我们可以在 for 循环中添加一个 if 语句,但我担心它会将运行时间增加到 O(n)。请指教。

【问题讨论】:

  • 我认为在任何情况下你都不会在 O(n) 中有任何差异。除了for,你也可以使用while
  • 就示例而言,您可以使用for i in range(n//j+1) 实现相同的效果。

标签: python for-loop runtime


【解决方案1】:

for 的复杂度为O(n),因此if 不会改变复杂度。

Java 中的 for(i=0; i*j &lt; n; i++) 在 Python 中由 while 表示:

i = 0  # initialization
while i * j < n:  # conditions
   do_something
   i += 1  # step

【讨论】:

    【解决方案2】:

    当我从 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-12-15
      • 2020-10-18
      • 1970-01-01
      • 2021-02-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多