加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

Python字符串格式化

发布时间:2020-12-20 11:35:32 所属栏目:Python 来源:网络整理
导读:我有一种情况,我不一定知道如何格式化一些字符串,直到我计算了其他数字的长度. 做类似的事情: "{0:.2f}".format(#) 效果很好,因为我知道我想要显示那么多的地方,在这种情况下,两个小数点.如果地点数量有变化怎么办?如何从名为A的列表的相应元素中对名为B的
我有一种情况,我不一定知道如何格式化一些字符串,直到我计算了其他数字的长度.

做类似的事情:

"{0:.2f}".format(#)

效果很好,因为我知道我想要显示那么多的地方,在这种情况下,两个小数点.如果地点数量有变化怎么办?如何从名为A的列表的相应元素中对名为B的列表的元素进行动态字符串格式化(我想将B的适当格式化元素放入字符串中)?

A = ['1.100','5.4','11.1','7']
B = [1.23474927,4.92837087,12.06532387,6.9998123]

我希望看到的答案如下:

C = ['1.235','4.9','12.1','7']

这是我目前所知道的:

1)我可以通过以下方式计算出A中每个字符串右边的多少个位置:

places_A = [len(A[i].partition('.')[2]) for i in range(len(A)]

真正的问题是:我如何动态告诉format()以保持小数点右边的那么多位置?

解决方法

你只需要更多的牛铃(实际上,更多的替代品:{}):

print "This is a number with {1} places {0:.{1}f}".format(3.14159,2)

或者,在您给出的示例中:

C = ['{0:.{1}f}'.format(b,len(a.partition('.')[2])) for a,b in zip(A,B)]

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读