我正在通过python和pyobdc从windows服务器上的informix数据库读取数据。Python字符串格式化
检索与十进制值的行我得到这样的:
[(Decimal("0.99"),), (Decimal("0.0"),), (Decimal("113.84"),),.....]
这是没有摆脱字十进制的问题,但我不能想出如何删除所有的括号和“我不需要这样我就可以计算出该列表的总和。
什么是做在python的最佳方式?
我正在通过python和pyobdc从windows服务器上的informix数据库读取数据。Python字符串格式化
检索与十进制值的行我得到这样的:
[(Decimal("0.99"),), (Decimal("0.0"),), (Decimal("113.84"),),.....]
这是没有摆脱字十进制的问题,但我不能想出如何删除所有的括号和“我不需要这样我就可以计算出该列表的总和。
什么是做在python的最佳方式?
您可以计算小数对象的总和,他们有__sum__
方法。
>>> from decimal import Decimal
>>> a = [(Decimal("0.99"),), (Decimal("0.0"),), (Decimal("113.84"),)]
>>> sum(i[0] for i in a) #Because they're in a tuple
Decimal('114.83')
严格来说,'从十进制导入Decimal'不是必需的,因为'Decimal'对象已经被实例化。 –
@Chinmay有必要从头开始创建一个例子:) –
你的问题不在于你有小数(“XYZ”),但每个值都在一个元组中,所以,你需要从元组中取出这些值,以便将它们相加。
a = [(Decimal("0.99"),), (Decimal("0.0"),), (Decimal("113.84"),),.....]
b = sum(number[0] for number in a)
'Decimal()'类型是否支持添加或他首先必须将其转换为'float'? – 2011-08-12 15:49:07
'Decimal'支持添加就好了。 –
@Brandon:他们支持添加。投到浮球是一个坏主意,因为那样你就失去了精确性。 –
你不是“摆脱词”,因为你大概没有字符串;你有一个数据结构。您显示的字符串只是数据的文本表示。 –