是否可以在一行中编写类似的内容? 另一种询问方式是:是否可以合并以下列表理解? 和 答案 0 :(得分:2) 您几乎想将要做的事视为坏作风。也许是XY problem?在这种情况下,您应该打开另一个带有潜在问题的问题。 如果确定这是您想要的,请使用
PEP 308 -- Conditional Expressions
查看以下示例: 随后,您的示例 可以写为列表理解,如下所示: 答案 1 :(得分:0) 是的,有很多方法,但不建议这样做。
这是一个如何做的例子: 出于可读性考虑,我不建议这样做。
阅读The Zen of Python,不要写太长的行(最多80个字符) 答案 2 :(得分:0) 使用lsit理解 var = [如果i ==某物或i ==某物,则列表中的i为i]
here for x in list:
if condition1:
(...)
elif condition2:
(...)
else:
(...)
(...) for x in list
123 if condition1 else 345 if condition2 else 0
3 个答案:
>>> def f(condition1, condition2):
... return 1 if condition1 else 2 if condition2 else 3
...
>>> f(True, False)
1
>>> f(True, True)
1
>>> f(False, True)
2
>>> f(False, False)
3
for x in list:
if condition1:
(...)
elif condition2:
(...)
else:
(...)
[(...) if condition1 else (...) if condition2 else (...) for x in list]
l = [1,2,3,4,5,6,7]
for x in l:
if x%2 == 0:
print("Even")
elif x%2 == 1:
print("Odd")
else:
print("Nothing")
print("And here the one-liner:")
[print("Even") if x%2 == 0 else print("Odd") if x%2 == 1 else print("Nothing") for x in l]