從以下幾個角度分析,基本使用、存儲、性能和使用場景。
一、基本使用
列表:動態,長度不固定,可以增刪改;
元組:靜態,長度固定,不能直接增刪改,但可以合並元組;
都支持索引、切片、嵌套、函數轉換和內置函數。
二、存儲
列表:預分配,多申請一些空間以備后續存儲數據,存儲相同的數據,列表比元組占用空間大;
元組:在創建的時候已確定占用內存的大小,且無法直接修改元組;
列表和元組都是存儲對象的內存地址,既指針的指針數組。
三、性能
元組:不可變,較小的元組在引用計數為0時,不會被回收,而是被緩存起來,后續需要創建相同元組時直接從緩存中載入,不用重新創建;
元組的初始化效率高於列表,並且元組是可哈希的,可作為字典的key;
列表:增刪改的效率高於元組,但兩者的查找效率基本一致;
四、場景
元組:存儲的數據和數量不變;
列表:存儲的數據或者數量可變: