【问题标题】:Nested one-liner loops [duplicate]嵌套的单行循环[重复]
【发布时间】:2015-03-21 11:11:25
【问题描述】:

我知道怎么写单行循环,用一个循环,比如

for x in range(0,10): print(x)

但我想要类似的东西

for x in range(0,10): if 1==1: print(x) 

但是,这会返回错误。我该如何解决?

【问题讨论】:

  • 你可以通过把它放在多行上来修复它;)或者,更严重的是,你可以重构一个列表理解,比如for y in (x for x in range(0, 10) if 1==1): print(y)
  • @MagnusHoff 这被称为生成器表达式,而不是列表理解:D
  • 或者干脆忘记单线。可重复性很重要。

标签: python loops if-statement python-3.x for-loop


【解决方案1】:

在 Py3 中你可以这样做

for x in range(0,10): print(x) if 1==1 else None

输出

>>> for x in range(0,10): print(x) if 1==1 else None
... 
0
1
2
3
4
5
6
7
8
9

【讨论】:

  • 这将为那些条件不适用的值打印None。基本上是print ( (x) if condition else None),对于Python3来说效果更好,因为print是一个函数,那么。
  • @tobias_k OP 可以放任何东西。不过感谢您提供的信息
  • @BhargavRao:但你必须把 something 放在那里。在 Python 2 中,您不能打印任何内容,这正是这里所需要的。 (除非你使用from __future__ import print_fucntion,适用于2.6+)
猜你喜欢
  • 2013-06-05
  • 2017-09-30
  • 2010-10-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多