【问题标题】:How to put statement before for-loop in python如何在python中的for循环之前放置语句
【发布时间】:2011-11-22 19:58:12
【问题描述】:

如何在python中的for循环之前放置一条语句?如:

print i for i in range(10)

上面的例子似乎没有必要。但是当涉及到一个更复杂的生成器时,它可能会很方便并且是 Python 的:

print i for i in takewhile(lambda x: x < 100000, fibonacci()) if i % 2 == 0

当然,口译员会抱怨上述陈述。应该有一些标准和简单的方法来做到这一点,但我就是找不到。我知道我可以用列表理解做类似的事情:

print [i for i in range(10)]

但它会打印一个列表,而不是列表中的每个 i。不完全是我想要的。

【问题讨论】:

  • 正常的for 循环有什么问题?
  • 如何将语句和复杂的生成器表达式(= 复杂度的两倍)放在一行中好吗?
  • 没有错。我只是偏爱简洁的东西,尤其是单行字。

标签: python for-loop


【解决方案1】:

你不能在 Python 中做到这一点。

你可以把它放在后面:

for i in range(10): print i 

但通常你会写成两行。

for i in range(10):
    print i 

【讨论】:

    【解决方案2】:

    我猜你不喜欢简单的方法?

    for i in range(10):
        print i
    

    如果你真的想要你所说的语法,你可以试试这个:

    from __future__ import print_function # Added in 2.6
    
    map(print, range(10))
    

    【讨论】:

      【解决方案3】:

      这里有一个替代方案:

      print '\n'.join(map(str, range(10)))
      

      或生成器:

      print '\n'.join(str(i) for i in range(10))
      

      【讨论】:

        猜你喜欢
        • 2021-12-24
        • 2014-10-30
        • 2021-01-01
        • 2010-11-16
        • 1970-01-01
        • 1970-01-01
        • 2019-08-31
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多