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

时间:2017-01-31 14:38:53

标签: python set python-3.5

除了混淆集([])和{}之外,

Set()和{}似乎给出了非常相似的行为。在下面的比较中,为什么最后一个为假?

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

3 个答案:

答案 0 :(得分:6)

因为{}字面值是为空dict保留的,而不是空集

答案 1 :(得分:2)

因为{}创建了dict

In[49]: type({})
Out[49]: dict

答案 2 :(得分:0)

要创建空集,您只能使用set()

集合是唯一元素的集合,您无法对它们进行排序。列表是有序的元素序列,可以重复值。字典将键映射到值,键必须是唯一的。集合和字典键也必须满足其他限制,这样Python实际上可以有效地跟踪它们,并且知道它们是并且将保持唯一。