擅长:python、mysql、java
<p>一个更持久的解决方案是子类<code>float</code>:</p>
<pre><code>>>> class prettyfloat(float):
def __repr__(self):
return "%0.2f" % self
>>> x
[1.290192, 3.0002, 22.119199999999999, 3.4110999999999998]
>>> x = map(prettyfloat, x)
>>> x
[1.29, 3.00, 22.12, 3.41]
>>> y = x[2]
>>> y
22.12
</code></pre>
<p>子类化<code>float</code>的问题在于它破坏了显式查找变量类型的代码。但据我所知,这是唯一的问题。而一个简单的<code>x = map(float, x)</code>将撤消到<code>prettyfloat</code>的转换</p>
<p>不幸的是,你不能仅仅是猴子补丁<code>float.__repr__</code>,因为<code>float</code>是不可变的</p>
<p>如果您不想将<code>float</code>子类化,但不介意定义一个函数,<code>map(f, x)</code>比<code>[f(n) for n in x]</code>简洁得多</p>