Van*_*ith 4 python python-2.x python-3.x
我想打破 python oneliner 的其他部分的循环。
value='4,111,010.00400'
for i in value[-1:value.rfind('.')-1:-1]:
if i in ('0', '.'):
value=value[:-1]
else:
break
Run Code Online (Sandbox Code Playgroud)
我编写了这段代码并尝试将其转换为 python oneliner。所以这样写
for i in value[-1:value.rfind('.')-1:-1]:
value=value[:-1] if i in ('0', '.') else break
Run Code Online (Sandbox Code Playgroud)
但无法在该衬里内放置断裂点。是否有任何替代方法来放置它,或者是否可以在 python oneliner 中实现上述目标?
正如您所发现的,您不能break与三元运算符一起使用,原因很简单,因为它break不是一个值。此外,虽然if不带 no 的语句else可以放在一行中,但它else阻止了良好的单行解决方案。
您的代码将删除尾部0和最多一个句点(如果该句点之后的所有内容都是0)。因此它相当于:
value = value.rstrip('0').rstrip('.')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1805 次 |
| 最近记录: |