首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将浮动列表限制为10位

将浮动列表限制为10位
EN

Stack Overflow用户
提问于 2015-02-05 06:16:30
回答 2查看 97关注 0票数 0

我有一个从数据文件导入的列表。

代码语言:javascript
复制
lines=['1628.246', '100.0000', '0.4563232E-01', '0.4898217E-01', '0.3017656E-02', '0.2271272', '0.2437533', '0.1500232E-01', '0.4102987', '0.4117742', '0.5461504E-02', '2.080838', '0.5527303E-03', '-0.4542367E-03', '-0.2238781E-01', '-0.8196812E-03', '-0.3796306E-01', '-0.7906407E-03', '-0.6738000E-03', '0.000000']

我想生成一个新的列表,包括相同10位数的所有元素,然后放回文件中,如下所示:

代码语言:javascript
复制
newline=map(float,lines)
newline=map("{:.10f}".format,newline)
newline=map(str,newline)
jitterfile.write(join(newline)+'\n')

它可以工作,但看起来并不美观。有没有办法让它看起来更好看?

EN

回答 2

Stack Overflow用户

发布于 2015-02-05 06:18:21

您可以像这样在一行中完成此操作:

代码语言:javascript
复制
    newline=["{:.10f}".format(float(i)) for i in lines]
    jitterfile.write(join(newline)+'\n')

值得注意的是,您的第三条指令newline=map(str,newline)是多余的,因为列表中的条目已经是字符串,所以没有必要强制转换它们。

票数 3
EN

Stack Overflow用户

发布于 2015-02-05 06:30:43

map函数也接受lambda,因为format的结果是string,您不需要在列表中应用str,并且您需要使用带有分隔符的join,如',':

代码语言:javascript
复制
>>> newline=map(lambda x:"{:.10f}".format(float(x)),newline)
>>> newline
['1628.2460000000', '100.0000000000', '0.0456323200', '0.0489821700', '0.0030176560', '0.2271272000', '0.2437533000', '0.0150023200', '0.4102987000', '0.4117742000', '0.0054615040', '2.0808380000', '0.0005527303', '-0.0004542367', '-0.0223878100', '-0.0008196812', '-0.0379630600', '-0.0007906407', '-0.0006738000', '0.0000000000']
jitterfile.write(','.join(newline)+'\n') 
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28332555

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档