我想打破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中实现以上目的?
答案 0 :(得分:3)
您已经发现,不能将break
与三元运算符一起使用,原因很简单,即break
不是值。此外,虽然可以将没有if
的{{1}}语句放在一行上,但是else
会阻止一个不错的1行解决方案。
您的代码会删除尾随else
和最多一个句点(如果该句点之后的所有内容都是0
)。因此,它等效于:
0