将数字 1 添加到集合中没有效果

2023-07-24Python开发问题
3

本文介绍了将数字 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

我相信你的问题是 1True 是相同的值,所以 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 添加到集合中没有效果的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

The End

相关推荐

在xarray中按单个维度的多个坐标分组
groupby multiple coords along a single dimension in xarray(在xarray中按单个维度的多个坐标分组)...
2024-08-22 Python开发问题
15

Pandas中的GROUP BY AND SUM不丢失列
Group by and Sum in Pandas without losing columns(Pandas中的GROUP BY AND SUM不丢失列)...
2024-08-22 Python开发问题
17

pandas 有从特定日期开始的按月分组的方式吗?
Is there a way of group by month in Pandas starting at specific day number?( pandas 有从特定日期开始的按月分组的方式吗?)...
2024-08-22 Python开发问题
10

GROUP BY+新列+基于条件的前一行抓取值
Group by + New Column + Grab value former row based on conditionals(GROUP BY+新列+基于条件的前一行抓取值)...
2024-08-22 Python开发问题
18

PANDA中的Groupby算法和插值算法
Groupby and interpolate in Pandas(PANDA中的Groupby算法和插值算法)...
2024-08-22 Python开发问题
11

PANAS-基于列对行进行分组,并将NaN替换为非空值
Pandas - Group Rows based on a column and replace NaN with non-null values(PANAS-基于列对行进行分组,并将NaN替换为非空值)...
2024-08-22 Python开发问题
10