Python格式化列表列表中的所有值

时间:2016-09-14 14:23:05

标签: python list format

我很抱歉,我问这么愚蠢的问题 但是你可以帮助我格式化列表清单("%。2f"),例如:

a=[[1.343465432, 7.423334343], [6.967997797, 4.5522577]]

我用过:

  for x in a:
     a = ["%.2f" % i for i in x]
     print (a)

OUT:

['1.34', '7.42']
['6.97', '4.55']

但我想得到我的清单清单 OUT:

[['1.34', '7.42'] ,['6.97', '4.55']]

2 个答案:

答案 0 :(得分:2)

以更简单的方式,您可以使用列表理解来实现相同的目标:

append

事实上甚至你的代码都没问题。您只需要{{1}}要打印到列表中的值

,而不是打印

答案 1 :(得分:1)

更通用的解决方案只需要几行。它递归地格式化数字,列表,任何嵌套深度的列表列表。

def fmt(data):
    if isinstance(data, list):
        return [fmt(x) for x in data]
    try:
        return "%.2f" % data
    except TypeError:
        return data


a=[[1.343465432, 7.423334343], [6.967997797, 4.5522577], [10, [20, 30]], 40] 
print(fmt(a))
# [['1.34', '7.42'], ['6.97', '4.55'], ['10.00', ['20.00', '30.00']], '40.00']