我什么時候應該使用字典,列表或集合?是否有更適合每種數據類型的方案?
3 回答

郎朗坤
TA貢獻1921條經驗 獲得超9個贊
一個list
保持秩序,dict
而set
不要:當你關心的秩序,因此,您必須使用list
(如果你的容器的選擇是有限的這三個,當然;-)。
dict
與每個鍵關聯一個值,而list
而set
僅包含值:很明顯,非常不同的用例。
set
要求項目是可哈希的,list
不是:如果您有不可哈希的項目,則不能使用,set
而必須使用list
。
set
禁止重復,list
不禁止:也是至關重要的區別。(可以在以下位置找到“多重集”,該多重集將重復項映射到不止一次存在的項目的不同計數中;如果出于某些奇怪的原因而無法導入,則collections.Counter
可以將其構建為,或者在2.7之前的版本中Python作為,使用項目作為鍵,并將相關值作為計數)。dict
collections
collections.defaultdict(int)
在set
(或dict
鍵中)中檢查值的成員身份非??旖荩ɑㄙM一個恒定,短的時間),而在列表中,它花費的時間與列表的長度成正比(在一般情況下和最壞情況下)。因此,如果您有可散列的項目,則不關心順序或重復項,而希望快速進行成員資格檢查set
比更好list
。
添加回答
舉報
0/150
提交
取消