Adding the number 1 to a set has no effect(将数字 1 添加到集合中没有效果)
问题描述
我无法将整数 1
添加到现有集合中.在交互式外壳中,这就是我正在做的事情:
I cannot add the integer number 1
to an existing set. In an interactive shell, this is what I am doing:
>>> st = {'a', True, 'Vanilla'}
>>> st
{'a', True, 'Vanilla'}
>>> st.add(1)
>>> st
{'a', True, 'Vanilla'} # Here's the problem; there's no 1, but anything else works
>>> st.add(2)
>>> st
{'a', True, 'Vanilla', 2}
这个问题是两个月前发布的,但我认为它被误解了.我正在使用 Python 3.2.3.
This question was posted two months ago, but I believe it was misunderstood. I am using Python 3.2.3.
推荐答案
>>> 1 == True
True
我相信你的问题是 1
和 True
是相同的值,所以 1 是已经在集合中".
I believe your problem is that 1
and True
are the same value, so 1 is "already in the set".
>>> st
{'a', True, 'Vanilla'}
>>> 1 in st
True
在数学运算中,True
本身被视为 1
:
In mathematical operations True
is itself treated as 1
:
>>> 5 + True
6
>>> True * 2
2
>>> 3. / (True + True)
1.5
虽然 True 是 bool 而 1 是 int:
Though True is a bool and 1 is an int:
>>> type(True)
<class 'bool'>
>>> type(1)
<class 'int'>
因为 1 in st
返回 True,我认为您应该没有任何问题.这是一个非常奇怪的结果.如果您有兴趣进一步阅读,@Lattyware 指向 PEP 285深入解释了这个问题.
Because 1 in st
returns True, I think you shouldn't have any problems with it. It is a very strange result though. If you're interested in further reading, @Lattyware points to PEP 285 which explains this issue in depth.
这篇关于将数字 1 添加到集合中没有效果的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:将数字 1 添加到集合中没有效果
基础教程推荐
- 筛选NumPy数组 2022-01-01
- 用于分类数据的跳跃记号标签 2022-01-01
- Python kivy 入口点 inflateRest2 无法定位 libpng16-16.dll 2022-01-01
- 在 Python 中,如果我在一个“with"中返回.块,文件还会关闭吗? 2022-01-01
- 使用PyInstaller后在Windows中打开可执行文件时出错 2022-01-01
- Dask.array.套用_沿_轴:由于额外的元素([1]),使用dask.array的每一行作为另一个函数的输入失败 2022-01-01
- 如何让 python 脚本监听来自另一个脚本的输入 2022-01-01
- 如何在海运重新绘制中自定义标题和y标签 2022-01-01
- 何时使用 os.name、sys.platform 或 platform.system? 2022-01-01
- 线程时出现 msgbox 错误,GUI 块 2022-01-01