相当于'a?b:c`

eng*_*uan 37 python

可能重复:
Python三元运算符

我想在python中打印出一个字符串.我不想这样做:

if isfemale_bit:
    print 'F'
else:
    print 'M'
Run Code Online (Sandbox Code Playgroud)

我现在最好的是print ['M', 'F'][int(isfemale_bit)]

还有更好的选择吗?

我需要我的语法糖!!

Pau*_*nia 48

在Python 2.5中,您可以使用这样的三元条件:

a if b else c
Run Code Online (Sandbox Code Playgroud)

这里有更多讨论:Python有三元条件运算符吗?

  • 这相当于`b?a:c` (3认同)

sen*_*rle 15

啊三元运营商啊:

>>> print 'foo' if True else 'bar'
foo
>>> print 'foo' if False else 'bar'
bar
Run Code Online (Sandbox Code Playgroud)


Ste*_*ini 12

 print 'F' if isfemale_bit else 'M'
Run Code Online (Sandbox Code Playgroud)


Thi*_*hib 7

我想你正在寻找类似于isfemale_bit?'F':'M'C代码的解决方案所以你可以使用and-or构造(参见Dive Into Python)

print isfemale_bit and 'F' or 'M'

  • @Paul Rosania,我明白它是如何运作的.我不明白为什么你会这样做,永远. (4认同)
  • 这在python有一个三元运算符(它相当新的)之前很常见,但现在不再有意义了.如果您希望三元组返回虚假值,那么如果您将其视为三元运算符,则会以非常难以调试的方式中断.这比真正的三元组更难阅读.我会强烈反对它. (2认同)