要改變float
很容易只是做
from __future__ import division # unnecessary on Py 3
一個選項:
>>> a=[('z',1),('x',2),('r',4)]
>>> a = [list(t) for t in a]
>>> for i in range(len(a)):
a[i][1]=(a[i][1])/7
>>> a
[['z', 0.14285714285714285], ['x', 0.2857142857142857], ['r', 0.5714285714285714]]
也許是最好的辦法:
>>> a=[('z',1),('x',2),('r',4)]
>>> a[:] = [(x, y/7) for x, y in a]
>>> a
[('z', 0.14285714285714285), ('x', 0.2857142857142857), ('r', 0.5714285714285714)]
正如意見中的要求,以3 「存儲和不打印」的小數位數
>>> import decimal
>>> decimal.getcontext().prec = 3
>>> [(x, decimal.Decimal(y)/7) for x, y in a]
[('z', Decimal('0.143')), ('x', Decimal('0.286')), ('r', Decimal('0.571'))]
如果你想改變一個元組,你真的需要一個'list'。 – Nemoden 2013-04-24 05:54:19
替換整個元組,而不僅僅是一個組件。巴姆! – 2013-04-24 06:00:04