我想將十進制值轉換為浮點值。預先感謝您提供解決方案。
這是我的串列的樣子:
data = [('CUS002', 'ARTNUM423', 'Product 1234', Decimal('12.75'), 10), ('CUS005', 'ARTNUM784', 'Product 54628', Decimal('24.95'), 9)]
結果應該是這樣的:
data = [('CUS002', 'ARTNUM423', 'Product 1234', 12.75, 10), ('CUS005', 'ARTNUM784', 'Product 54628', 24.95, 9)]
我試圖用這個來解決它
data = [float(x[3]) for x in data]
不太作業。我確定解決方案很簡單,但我現在完全被阻止了。
uj5u.com熱心網友回復:
使用理解創建一個新的元組串列:
>>> [tuple(x if i!=3 else float(x) for i, x in enumerate(t)) for t in data]
[('CUS002', 'ARTNUM423', 'Product 1234', 12.75, 10),
('CUS005', 'ARTNUM784', 'Product 54628', 24.95, 9)]
uj5u.com熱心網友回復:
元組是不可變的,所以為了作業,需要創建新的元組:
from decimal import Decimal
data = [('CUS002', 'ARTNUM423', 'Product 1234', Decimal('12.75'), 10),
('CUS005', 'ARTNUM784', 'Product 54628', Decimal('24.95'), 9)]
result = [(a, b, c, float(d), e) for a, b, c, d, e in data]
print(result)
替代的較短版本,使用擴展的可迭代解包:
result = [(*head, float(d), e) for *head, d, e in data]
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/311485.html
