gpt4 book ai didi

python - 字典记录在打印时被截断

转载 作者:太空狗 更新时间:2023-10-29 21:06:34 35 4
gpt4 key购买 nike

我有一个包含一些浮点值的字典。

当我按原样打印字典时,我得到了完全准确的这些值。

但是,当我尝试分别打印每个值时,它们被截断了。

一个简单的代码示例来说明问题:

d = {'x': 0.010000000000000231}
print d # outputs {'x': 0.010000000000000231}
print d['x'] # outputs 0.01

现在,我当然可以使用 format 来解决这个问题,即在上面的示例中:

print '{:.18f}'.format(d['x']) # outputs 0.010000000000000231

但是,我希望避免这种解决方案。

首先,因为我不知道字典中每个条目所需的确切精度。其次,因为我更喜欢避免繁琐的编码类型,这涉及指定每个字段的打印格式。

换句话说,我想做这样的事情:

print 'x = {}'.format(d['x'])

或者:

print 'x =',d['x']

并获取以完全精度打印的 d['x'] 的值。

为什么 Python 解释器为 dd['x'] 选择不同的打印格式,我可以采取什么方法来实现我的目的?

最佳答案

您看到的是调用 __str__ 方法与调用 __repr__ 方法时打印的内容之间的差异。

一个例子:

In [816]: print 0.010000000000000231
0.01

In [817]: print repr(0.010000000000000231)
0.010000000000000231

造成这种差异的原因是因为 str 试图截断 python2 中的数字。

这在 python3 中有所改变,strrepr 的行为一致。

关于python - 字典记录在打印时被截断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45797392/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com