python中,列表和元組都是序列的一種,它們的基本特徵,最大區別在於,列表是可變的,而元組則是不可變的。python中還有另外一種序列,叫做集合。
python集合
集合也是一種序列。它的特點是可變,但是無法通過索引操作。因為集合中的元素是無序的。當試圖通過索引進行操作時,會提示TypeError,類型錯誤。集合中的元素還是不可重複的。當嘗試向一個集合中,添加多個重複元素時,重複元素只會存在一個。可通過大括號來創建集合,如下:

也可以通過set函數來創建集合,它接受一個序列作為參數,會將該序列中的元素放入集合。仍然會有去重效果。如下:

python集合方法
通過add或update方法都可以添加元素到集合,add只能添加單個元素,update可以以序列或字典作為參數。當以字典作為參數時,會將字典中的值都添加到集合中。仍然會有去重效果。如下:

copy方法可以用於拷貝,clear方法可以清空集合中的元素。如下:

這裡的拷貝仍然是一個淺拷貝,深拷貝和淺拷貝可參考文章:python數據類型總結——字典
刪除集合中指定的元素可以用discard或remove,二者不同之處在於,當試圖刪除一個集合中不存在的元素時,remove會報錯,discard不會。如下:

某些場景下,如果希望隨機刪除集合中的某元素,可使用pop方法,它的返回值為被刪除的元素。如下:

集合和數學中的集合一樣,可以進行差集,交集或併集的運算。difference用於求差集,intersection用於求交集,union用於求併集。如下:

計算差集還有另一個方法,dirrerence_update,它於difference的區別在於:
difference會返回一個新的集體,用於存放差集結果。difference_update沒有返回結果,會直接修改set1中的內容為差集結果。如下:

用於交集intersection,也有類似的方法,Intersection_update,二者區別和difference和difference_update之間的區別是一致的。
isdisjoint用於判斷兩個集合中是否有重複元素,有則返回False,無則返回True。issubset和issuperset兩個方法可以用於判斷兩個集合是否存在子集關係。如下:

有時候,我們希望把兩個集合中不重複的元素都找出來,這時候,可以用symmetric_difference方法,相應的,它也有一個symmetric_difference_update兄弟。如下:

python基本數據類型整理
至此,我們了解了python中所有的基本數據類型。在學習時,我們關注了它們的一些基本特徵,如是否可變,是否是序列,是否有序等。整理總結如下: