我正在使用Python集进行一些简单的实验.
我注意到这种奇怪的(至少对我而言)行为.
>>> {1,2,3} == set([1,2,3])
True
>>> {1} == set([1])
True
>>> {} == set([])
False
>>>
Run Code Online (Sandbox Code Playgroud)
为什么最后一个说False?
我觉得这很不合逻辑.
这有什么好的理由吗?
{}创建一个空字典,而不是一个集合.
没有空集文字,只需使用set()(无参数).
大括号或
set()函数可用于创建集合.注意:要创建一个空集,你必须使用set(),而不是{}; 后者创建一个空字典,我们将在下一节讨论这个数据结构.
并从表达式参考文档的set显示部分:
无法构造空集
{}; 这个文字构造了一个空字典.
集合是语言的相对较晚的补充; 使用{elem1, elem2}创建一组中仅引入Python 3中和在添加到Python 2 的Python 2.7,但{}被用于为,远远更长的空字典,至少早0.9.2(释放1991).