python中對象的三個要素:id(身份标示),type(資料類型)、value(值)
== 比較操作符:用來比較兩個對象值是否相等。
is 同一性運算符:比較兩個對象的id值是否相等,即是否是同一對象,是否指向同一個記憶體位址。
補充:當兩個對象值相同時,隻有其為數值型或字元串型,a is b才為True,當a和b是tuple,list,dict或set型時,a is b為False
變資料類型:清單list和字典dict;可變資料類型,允許變量的值發生變化,即如果對變量進行append、+=等這種操作後,隻是改變了變量的值,而不會建立一個對象,變量引用的對象的位址也不會變化,不過對于相同的值的不同對象,在記憶體中則會存在不同的對象,即每個對象都有自己的位址,相當于記憶體中對于同值的對象儲存了多份,這裡不存在引用計數,是實實在在的對象。
不可變資料類型:整型int、浮點型float、字元串型string和元組tuple。不可變資料類型,不允許變量的值發生變化,如果改變了變量的值,相當于是建立了一個對象,而對于相同的值的對象,在記憶體中則隻有一個對象,内部會有一個引用計數來記錄有多少個變量引用這個對象
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiI0gTMx81dsQWZ4lmZf1GLlpXazVmcvwFciV2dsQXYtJ3bm9CX9s2RkBnVHFmb1clWvB3MaVnRtp1XlBXe0xCMy81dvRWYoNHLwEzX5xCMx8FesU2cfdGLwMzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5iM3AzMyMWO4MzY2U2NmFWYyYzXwETOycTM2EzLcZDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.png)
二、python裡面set
Python set是基本資料類型的一種集合類型,它有可變集合(set())和不可變集合(frozenset)兩種。
建立集合set、集合set添加、集合删除、交集、并集、差集的操作都是非常實用的方法。
set 是一個無序的元素集合,支援并、交、差及對稱差等數學運算, 但由于 set 不記錄元素位置,是以不支援索引、分片等類序列的操作。
tuple算是list和str的雜合(雜交的都有自己的優勢,上一節的末後已經顯示了),那麼set則可以堪稱是list和dict的雜合.
set擁有類似dict的特點:可以用{}花括号來定義;其中的元素沒有序列,也就是是非序列類型的資料;而且,set中的元素不可重複,這就類似dict的鍵.