2024-04-24 21:04:09 发布
网友
很抱歉我问了这么愚蠢的问题 但您能帮我格式化列表列表(“%.2f”)吗?例如:
a=[[1.343465432, 7.423334343], [6.967997797, 4.5522577]]
我用过:
for x in a: a = ["%.2f" % i for i in x] print (a)
输出:
['1.34', '7.42'] ['6.97', '4.55']
但是我想得到我的名单 输出:
[['1.34', '7.42'] ,['6.97', '4.55']]
更一般的解决方案只需要几行代码。它递归地格式化数字、列表、任何嵌套深度的列表
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']
更简单的方法是,您可以使用列表理解来实现以下目标:
>>> a=[[1.343465432, 7.423334343], [6.967997797, 4.5522577]] >>> [["%.2f" % i for i in l] for l in a] [['1.34', '7.42'], ['6.97', '4.55']]
事实上,即使你的代码是好的。不需要打印,只需append将要打印到列表中的值
append
更一般的解决方案只需要几行代码。它递归地格式化数字、列表、任何嵌套深度的列表
更简单的方法是,您可以使用列表理解来实现以下目标:
事实上,即使你的代码是好的。不需要打印,只需
append
将要打印到列表中的值相关问题 更多 >
编程相关推荐