如何更简单地实现这个逻辑?
if isfemale_bit:
print('F')
else:
print('M')
目前最好的选择是 print(['M', 'F'][int(isfemale_bit)])
。
是否有更好的替代方案?
如何更简单地实现这个逻辑?
if isfemale_bit:
print('F')
else:
print('M')
目前最好的选择是 print(['M', 'F'][int(isfemale_bit)])
。
是否有更好的替代方案?
b?a:c
。 - Frank Vela?b:c
的等效写法,应该是 b if a else c
。这个答案中的顺序有所不同。 - Frank Vel>>> print 'foo' if True else 'bar'
foo
>>> print 'foo' if False else 'bar'
bar
print 'F' if isfemale_bit else 'M'
我猜您正在寻找类似于C代码中的isfemale_bit?'F':'M'
的解决方案。
您可以使用and-or
构造(参见《Dive Into Python》)。
print isfemale_bit and 'F' or 'M'
and
评估为 true,则返回其第二个参数;or
返回其最后一个 truthy 参数。你可以结合这些属性来获得三元运算符的等效形式。有点难以阅读,但它能够工作。 - Paul Rosania