考虑一下,我在下面列出了浮点值。我导入语言环境美国以将逗号十进制分隔符转换为点十进制值。在将其转换为点值之前,我无法使用float格式函数,因为python不接受逗号值作为float值。当我在获得点值的元组之后还尝试使用浮点格式功能时,由于元组是不可变的,因此我将无法使用它。我需要所有的元组浮点值的十进制精度为2。如果有人可以帮助我,那将非常好。
cmdlet
预期输出:
b=['1,374', '6,978', '3,987']
这是我的代码,每行输出
b=((1.37), (6.97), (3.98))
输出:
b= [(x,) for x in b]
输出:
b=[('1,374', '6,978', '3,987')]
import locale
locale.setlocale(locale.LC_ALL,'English_United States.1252')
'English_United States.1252'
b=tuple(tuple(locale.atof(e.replace(',', '.')) for e in t) for t in b)
答案 0 :(得分:1)
使用列表理解。替换,
,然后转换为float
,然后转换为round
该值。
[round(float(x.replace(',','.')),2) for x in b]
[1.37, 6.98, 3.99]
答案 1 :(得分:1)
b = ['1,374', '6,978', '3,987']
a = tuple( (float( v.replace(',', '.')), ) for v in b )
a
>>> ((1.374,), (6.978,), (3.987,))