List 如何打印具有3个十进制数的值的列表列表?

List 如何打印具有3个十进制数的值的列表列表?,list,python-2.7,decimal,List,Python 2.7,Decimal,我有上面的清单。我如何打印它,以便用3个十进制数字打印数字。我想要这个: a = [[1.0993455308580886, 1.9814814814814814, 1.2331369355392543, 1.646283618833137, 2.2736098709332486, 1.50035992597825]] 有没有办法强制代码中的所有浮点数都有3个十进制数? var a=[[1.0993455308580886,1.9814814,1.2331369355392543,1.6462

我有上面的清单。我如何打印它,以便用3个十进制数字打印数字。我想要这个:

a = [[1.0993455308580886, 1.9814814814814814, 1.2331369355392543, 1.646283618833137, 2.2736098709332486, 1.50035992597825]]
有没有办法强制代码中的所有浮点数都有3个十进制数?

var a=[[1.0993455308580886,1.9814814,1.2331369355392543,1.646283618833137,2.2736098709332486,1.50035992597825]]
var b=[];
//将a复制到b数组中
对于(变量i=0,len=a.length;i
var a=[[1.0993455308580886,1.9814814,1.2331369355392543,1.646283618833137,2.2736098709332486,1.50035992597825]]
var b=[];
//将a复制到b数组中
对于(变量i=0,len=a.length;i
这是一个dup

长话短说:你不能在全球范围内改变它。但是您可以编写这样的函数

b = [[1.099, 1.981, 1.233, 1.646, 2.273, 1.500]]

创建这样的列表称为列表理解。或者,您也可以使用
映射

return [['%.3f' % n for n in a[0]]]
但是Python开发人员通常更喜欢列表理解。

这是一个重复

长话短说:你不能在全球范围内改变它。但是您可以编写这样的函数

b = [[1.099, 1.981, 1.233, 1.646, 2.273, 1.500]]

创建这样的列表称为列表理解。或者,您也可以使用
映射

return [['%.3f' % n for n in a[0]]]

但是Python开发人员通常更喜欢列表理解。

可能重复@RicardoCruz,那里的列表没有答案:/当您执行
print(obj)
时,
print
函数将调用
obj.\uu str\uuuuuj()
obj.\uu repr\uuuj()
,如果第一个函数未实现。对于
列表
,列表将调用每个元素的相应函数。在您的情况下,将调用
float.\uuu str\uuu()
。没有办法在全局范围内改变这一点,但您可以在特定的基础上为列表实现您自己的打印功能。@RicardoCruz的可能副本那里的列表没有答案:/当您执行
print(obj)
时,
print
函数将调用
obj.\uu str_uuuu()
obj.\uu repr_u()
,如果第一个没有实现。对于
列表
,列表将调用每个元素的相应函数。在您的情况下,将调用
float.\uu str_uu()
。没有办法在全局范围内改变这一点,但您可以在特定的基础上为列表实现自己的打印功能无论如何,即使按照JS标准,您的代码也没有必要太长。以下代码与您的代码等效:
b=a[0].map(函数(n){return n.toFixed(3)})
。OP是用Python而不是Javascript进行询问的:无论如何,即使按照JS标准,您的代码也没有必要太长。下面的代码与您的代码相当:
b=a[0].map(函数(n){return n.toFixed(3)})
。您能否向我解释return[['%.3f'%n for n in a[0]]]是如何工作的,以及我如何将其写在多行中,以便更易于阅读?您可以将其写成:
l=[];对于[0]中的n:l.append('%.3f'%n)
(根据需要换行)。问题是速度要慢得多。使用列表理解(
l=[element for element in list]
)或
map
要快得多。这些是python特有的技巧,因此代码可以优化并以C速度运行。感谢您,这帮了我很大的忙:)您能向我解释一下返回[['%.3f'%n代表[0]]中的n是如何工作的,以及我如何将其写在多行中,以便更易于阅读吗?您可以将其写成:
l=[];对于[0]中的n:l.append('%.3f'%n)
(根据需要换行)。问题是速度要慢得多。使用列表理解(
l=[element for element in list]
)或
map
要快得多。这些是特定于python的技巧,因此代码可以优化并以C-speed运行。感谢您,它帮了很多忙:)