Python3物件導向 5 資料結構(2)元組

2021-10-07 18:56:30 字數 1444 閱讀 6069

元組:

1.定義:可以按照順序儲存一定數量物件的物件,不可變

2.不可變;

元組與多數python集合(列表、字典、集,等等)一樣,儲存的是物件的引用。如果引用的元素是可變的,即便元組本身不可變,但是元素依然可變。也就是說元組的不可變性其實是指tuple資料結構的物理內容(即儲存的引用)不可變,與引用的物件無關。

t=(1

,2,[

1,2]

)print(id

(t[-1]

))t[2

]3)print

(t)print(id

(t[-1]

))2078751220360(1

,2,[

1,2,

3])2078751220360

"t[-1]中物件的位址沒有變"

3.不可變優勢:

用作字典型別的鍵,可以用作其他物件擁有雜湊值的地方,不可變的型別都是可雜湊的。

為什麼鍵必須是可雜湊的?直譯器呼叫雜湊函式,根據字典中鍵的值來計算儲存你的資料的位置。如果鍵是可變物件,它的值可改變。如果鍵發生變化,雜湊函式會對映到不同的位址來儲存資料。如果這樣的情況發生,雜湊函式就不可能可靠地儲存或獲取相關的資料。選擇可雜湊的鍵的原因就是因為它們的值不能改變。

"元組是不可變的,數值也是不可變的,所以鍵是不可變的因此可以希哈,作為字典的鍵"

a=print

(a[(1,

2,3)

])早睡早起

process finished with exit code 0

4.作用:用來儲存資料,不能儲存行為。如果需要某行為來操縱元組,必須將元組傳遞給函式來執行這乙個操作。

5.建立:

方式一: a=1,2,3

方式二 a=(1,2,3)

多元賦值實質也是元組的運用

x,y,z=1,

2,3x,y,z=(1

,2,3

)(x,y,z)=(

1,2,

3)

解包:

a=(1

,2,3

)x,y,z=a

"這個過程又稱為元組解包,變數個數於元組內,值個數要相同"

print

(x,y,z)

6.訪問:切片

print

(a[0:2

])(1

,2)返回依然是元組型別

7.缺點:可讀性差,無法通過閱讀**知道某個元組某個位置資料代表什麼

比如上個例子中,a的第乙個元素0,不知道它代表什麼意思,質能通過所賦值的變數名稱來猜測,比如所賦給的x。可能需要追溯到元組宣告地方周到它含義

8.當知道所有值都會立即用到並且是通過解包形式訪問其中的值時候,使用元組效果最好。

python3物件導向

類 class 描述同屬性和方法的物件的集合。方法 類中定義的函式 例項化 建立乙個類的例項,類的具體物件。物件 通過類定的資料例。包括兩個資料成員 類變數和例項變數 和方法。支援操作 屬性引用和例項化 class myclass i 12345 deff self return hello wor...

Python3 物件導向

類名 這類事物的名字,滿足大駝峰命名法,每乙個單詞的首字母大寫 屬性 這類事物具有什麼樣的特徵,身高,體重,年齡等 方法 這類事物具有什麼樣的行為,會跑,會說話,會跳等 class cat 名字貓的類,建議用大駝峰 def init self,new name,new age self.name n...

python3物件導向

類的定義 class classname name 屬性 age 18 私有屬性 deff self 方法,self 代表的是類的例項 return hello world def say self 私有方法,self 代表的是類的例項 print hello world 例項化 x classna...