关于Python有类似a?b:c的条件表达式吗

equivalent of `a?b:c`

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
Python Ternary Operator

我想用python打印一个字符串。我不想这样做:

1
2
3
4
if isfemale_bit:
    print 'F'
else:
    print 'M'

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

有更好的选择吗?

我需要我的句法糖!!


在Python2.5中,可以使用如下三元条件:

1
a if b else c

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


啊,三元运算符:

1
2
3
4
>>> print 'foo' if True else 'bar'
foo
>>> print 'foo' if False else 'bar'
bar


1
 print 'F' if isfemale_bit else 'M'

我想您正在寻找一个类似于c代码中的o isfemale_bit?'F':'M'的解决方案因此,您可以使用and-or结构(参见dive into python)

print isfemale_bit and 'F' or 'M'