是否可以在python一班轮三元条件运算符中放置中断

时间:2019-04-03 13:22:50

标签: python python-3.x python-2.x

我想打破python一个内衬的其他部分的循环。

value='4,111,010.00400'
for i in value[-1:value.rfind('.')-1:-1]:
    if i in ('0', '.'):
        value=value[:-1]
    else:
        break

我编写了这段代码,并试图将其转换为python一个内衬。像这样写

for i in value[-1:value.rfind('.')-1:-1]:
    value=value[:-1] if i in ('0', '.') else break

但无法在该衬板内放置中断。是否有其他替代方法可以放置它,还是可以在python oneliner中实现以上目的?

1 个答案:

答案 0 :(得分:3)

您已经发现,不能将break与三元运算符一起使用,原因很简单,即break不是值。此外,虽然可以将没有if的{​​{1}}语句放在一行上,但是else会阻止一个不错的1行解决方案。

您的代码会删除尾随else和最多一个句点(如果该句点之后的所有内容都是0)。因此,它等效于:

0