gpt4 book ai didi

Python 在集合构造过程中自动将 float 简化为整数

转载 作者:太空宇宙 更新时间:2023-11-04 07:18:44 24 4
gpt4 key购买 nike

我在创建 floatint 数据类型集时遇到了一些问题,例如

my_set = {1.00 1}

我会认为这是一组两个不同的元素,一个 float 1.00 和一个 int 1。但是,它默认为:

>>> 我的设置
= 设置([1])

这里,float 消失了,只有 int 保留了下来。然后事情变得困惑,因为 1.00 in my_set 返回 True。

我想知道是否有人可以解释实际发生的事情?有解决办法吗?

最佳答案

>>> 1 == 1.0
True
>>> hash(1) == hash(1.0)
True

Python 认为两者在集合中的使用和作为映射键方面是完全相同的值。解决此问题的唯一方法是将这两个值包装在一个自定义类中,该类将上述任一比较评估为 false。

关于Python 在集合构造过程中自动将 float 简化为整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29068483/

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