Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python格式化列表列表中的所有值_Python_List_Format - Fatal编程技术网

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

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

我很抱歉问了这么愚蠢的问题 但您能帮我设置列表的格式(“%.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.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的答案也很好。