當前位置:成語大全網 - 新華字典 - Python列表,元組,集合,字典的區別和相互

Python列表,元組,集合,字典的區別和相互

元組和列表是類似的, 只是元組不可修改內容

註意這裏指的是不可修改元組元素的指向, 妳可以修改內容指向的內容

>>>?lst?=?[1,?2,?3]#?定義列表

>>>?a?=?(1,?2,?lst,?4)#?註意元組a的a[2]是壹個列表

>>>?a

(1,?2,?[1,?2,?3],?4)

>>>?a[2]?=?4#?試圖修改元組元素的指向,?報錯

Traceback?(most?recent?call?last):

File?"<pyshell#3>",?line?1,?in?<module>

a[2]?=?4

TypeError:?'tuple'?object?does?not?support?item?assignment

>>>?a[2][0]?=?0#?不修改元組元素的指向的元素,?但是修改指向的內容

>>>?a

(1,?2,?[0,?2,?3],?4)

>>>?a[2].append(5)#?不修改元組元素的指向的元素,?但是修改指向的內容

>>>?a

(1,?2,?[0,?2,?3,?5],?4)

字典完全區別於列表和元組

因為字典使用hash表來存儲, 所以只有能夠進行hash運算的才能作為鍵值

個人認為, 壹般不可變的都能作為鍵, 比如str/tuple/None/function.列表不能作為鍵

最後, 由於字典是hash表算法{字典查找O(1), 列表遍歷O(n)}, 在數據量巨大的時候, 字典的查找效率出奇的高