gpt4 book ai didi

python - float 在字典中显示时打印不同 - python

转载 作者:太空宇宙 更新时间:2023-11-03 14:27:01 25 4
gpt4 key购买 nike

我正在用这个简单的代码创建一个字典:

pixel_histogram = {}
min_value = -0.2
max_value = 0.2
interval_size = (math.fabs(min_value) + math.fabs(max_value))/bins

for i in range(bins):
key = min_value+(i*interval_size)
print key
pixel_histogram[key] = 0
print pixel_histogram

但我有点惊讶,因为我通过打印获得了这些值:

#Printing keys
-0.2
-0.16
-0.12
-0.08
-0.04
0.0
0.04
0.08
0.12
0.16

#Printing the dictionary
{0.0: 0,
-0.08000000000000002: 0,
0.15999999999999998: 0,
-0.16: 0,
0.12: 0,
-0.12000000000000001: 0,
0.08000000000000002: 0,
-0.04000000000000001: 0,
-0.2: 0,
0.03999999999999998: 0}

我没有弄清楚为什么值不同以及我该如何解决这个问题。任何帮助,将不胜感激。谢谢。

最佳答案

Python 的 print 语句对正在打印的项目使用 str()。对于浮点值,str() 将打印特定数量的十进制值。

打印字典时,print 语句在字典对象上调用 str()。字典在其 __str__() 方法定义中对键使用 repr()。浮点值的 repr() 函数比 str() 函数打印到更多的小数位。

字典使用 repr() 而不是 str() 作为键的原因是您几乎肯定希望看到 print {'1': 1} 的打印方式不同于 print {1: 1}

关于python - float 在字典中显示时打印不同 - python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18967687/

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