格式化字符串疑问

2016-12-04 17:44:30 +08:00
 explist

s = ['0.3','1.25','12.98','2']

s=map(lambda x:format(float(x),'>5.2f'),s)

print(list(s))

#[' 0.30', ' 1.25', '12.98', ' 2.00']

转化后还是字符串,格式类似>5.2f,后面不足的补0,前面不足的补空格

1773 次点击
所在节点    Python
7 条回复
explist
2016-12-04 17:50:12 +08:00
有没有什么格式可以一步到位的?
suspended
2016-12-04 18:28:12 +08:00
看我大 ruby 一句话搞掂:
```ruby
irb(main):007:0> ['0.3','1.25','12.98','2'].map {|x| '% 2.2f' % x.to_f}
=> [" 0.30", " 1.25", " 12.98", " 2.00"]
```
suspended
2016-12-04 18:29:25 +08:00
搞错。。。啊,不能删 /改回复? - -!
thekoc
2016-12-04 18:37:51 +08:00
@explist 什么叫一步到位
Kisesy
2016-12-04 18:44:55 +08:00
print(['%5.2f'%float(x) for x in ['0.3','1.25','12.98','2']])
一行到位
explist
2016-12-04 19:23:26 +08:00
直接用格式化的相关函数如 format(),zfill()等
lonelinsky
2016-12-04 23:02:08 +08:00
[ '{: >5.2f}'.format(float(x)) for x in s ] 这个应该可以

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/325212

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX