Set()和{}似乎給出了非常相似的行爲,除了混淆集([])和{}之外。在下面的比較中,爲什麼最後一個是False?爲什麼Python設置([])不等於{}?
>>> 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
Set()和{}似乎給出了非常相似的行爲,除了混淆集([])和{}之外。在下面的比較中,爲什麼最後一個是False?爲什麼Python設置([])不等於{}?
>>> 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
由於{}
字面保留用於空dict
,而不是空集
由於{}
創建dict
。
In[49]: type({})
Out[49]: dict
要創建一個空集,您只能使用set()
。
集合是唯一元素的集合,您無法對它們進行排序。列表是有序的元素序列,值可以重複。字典將鍵映射到值,鍵必須是唯一的。 Set和字典鍵也必須滿足其他限制,以便Python可以有效地跟蹤它們並知道它們是否將保持唯一。
因爲'{}'創建了一本字典! – MSeifert
,因爲'type({})'是'dict'。 –
現在很明顯了:( – cammil