Python {} 不等于 set([]),为什么?

问题描述 投票:0回答:1

我正在用Python集做一些简单的实验。
我注意到这种奇怪的行为(至少对我来说)。

>>> {1,2,3} == set([1,2,3])
True
>>> {1} == set([1])
True
>>> {} == set([])
False
>>>

为什么最后一个说

False

我觉得这很不合逻辑。

这有什么充分的理由吗?

python set
1个回答
9
投票

{}
创建一个空的字典,而不是一个集合。

没有空集文字,只需使用

set()
(无参数)。

来自关于集合的官方 Python 教程

花括号或

set()
函数可用于创建集合。注意:要创建一个空集,您必须使用
set()
,而不是
{}
;后者创建一个空字典,这是我们在下一节中讨论的数据结构。

并从表达式参考文档的集显示部分

空集不能用

{}
构造;这个文字构造了一个空字典。

集合是该语言相对较晚的补充;使用

{elem1, elem2}
创建集合仅在 Python 3 中引入,并在 Python 2.7 中添加到 Python 2,但
{}
用于空字典的时间已经很长很长了,至少早在 0.9 就可以了。 2(1991 年发布)。

© www.soinside.com 2019 - 2024. All rights reserved.