Python格式化列表列表中的所有值
我很抱歉问了这么愚蠢的问题 但您能帮我设置列表的格式(“%.2f”)例如:Python格式化列表列表中的所有值,python,list,format,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) 输出: 但是我想得到我的名单 输出: 以一种更简单的方式,您可以使用列表理解来实现以下目标: >>> a=[[1.343465432, 7.4233343
a=[[1.343465432, 7.423334343], [6.967997797, 4.5522577]]
我用过:
for x in a:
a = ["%.2f" % i for i in x]
print (a)
输出:
但是我想得到我的名单
输出:
以一种更简单的方式,您可以使用列表理解来实现以下目标:
>>> 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']]
事实上,即使你的代码也很好。您不需要打印,只需将正在打印的值附加到列表中,以一种更简单的方式,您可以使用列表理解来实现以下目的:
>>> 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']]
事实上,即使你的代码也很好。您不需要打印,只需将要打印的值附加到列表中即可更通用的解决方案只需几行即可。它递归地格式化数字、列表、任何嵌套深度的列表
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']
更一般的解决方案只需要几行代码。它递归地格式化数字、列表、任何嵌套深度的列表
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
附加到一个新列表,而不是print()
它?既然您已经知道如何使用列表理解,只需在a中为x嵌套:output=[['%.2f'%i for i in x]
。实际上,在这种情况下,a
是一个错误的变量名选择,因为您首先要循环它的元素。b
怎么样:b+=[“%.2f”%i代表x中的i
?@Martijn Pieters谢谢。我使用了列表理解,但我在语法上犯了错误@谢谢你的建议。所以只需将a
附加到一个新列表,而不是print()
它?既然您已经知道如何使用列表理解,只需在a中为x嵌套:output=[['%.2f'%i for i in x]
。实际上,在这种情况下,a
是一个错误的变量名选择,因为您首先要循环它的元素。b
怎么样:b+=[“%.2f”%i代表x中的i
?@Martijn Pieters谢谢。我使用了列表理解,但我在语法上犯了错误@谢谢你的建议。巧妙地使用listcomp!@Moinuddin Quadri这个脚本在任何长度的列表中都有效吗?我的意思是如果我在一个列表中有1000个不同的列表length@ProtossReed:是的,就清单而言(根据问题,我相信这永远是正确的)。物品的长度无关紧要。@Moinuddin Quadi非常感谢您。我认为VPfB的答案看起来也不错。巧妙地使用listcomp!@Moinuddin Quadri这个脚本在任何长度的列表中都有效吗?我的意思是如果我在一个列表中有1000个不同的列表length@ProtossReed:是的,就清单而言(根据问题,我相信这永远是正确的)。物品的长度无关紧要。@Moinuddin Quadi非常感谢您。我认为VPfB的答案也很好。