我正在使用Python集进行一些简单的实验 我注意到这种奇怪的行为(至少对我而言)。
>>> {1,2,3} == set([1,2,3])
True
>>> {1} == set([1])
True
>>> {} == set([])
False
>>>
为什么最后一个说False
?
我觉得这很不合逻辑。
这有什么好理由吗?
答案 0 :(得分:8)
{}
创建一个空的字典,而不是一个集合。
没有空的集合文字,只需使用set()
(无参数)。
来自official Python tutorial on sets:
可以使用大括号或
set()
函数来创建集合。注意:要创建空集,您必须使用set()
,而不是{}
;后者创建了一个空字典,这是我们在下一节讨论的数据结构。
并从表达式set displays section引用文档:
无法使用
{}
构建空集;这个文字构造了一个空字典。
集合是语言的相对较晚的补充;使用{elem1, elem2}
创建集合仅在Python 3中引入并添加到Python 2.7中的Python 2中,但{}
用于空字典,远远超过至少早在0.9。2(1991年发布)。