我正在通過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:他們支持添加。投到浮球是一個壞主意,因爲那樣你就失去了精確性。 –
你不是「擺脫詞」,因爲你大概沒有字符串;你有一個數據結構。您顯示的字符串只是數據的文本表示。 –