日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

python数据类型可变和不可变_Python——可变和不可变类型数据

發(fā)布時(shí)間:2023/12/15 python 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python数据类型可变和不可变_Python——可变和不可变类型数据 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

什么是不可變類(lèi)型?

存儲(chǔ)空間保存的數(shù)據(jù)不允許被修改,這種數(shù)據(jù)就是不可變類(lèi)型。

常見(jiàn)的不可變類(lèi)型有:

數(shù)字類(lèi)型 int, bool, float, complex, long(2.x)

字符串 str

元組 tuple

什么是可變類(lèi)型?

存儲(chǔ)空間保存的數(shù)據(jù)允許被修改,這種數(shù)據(jù)就是可變類(lèi)型。

常見(jiàn)的可變類(lèi)型有:

列表 list

字典 dict

***需要注意,可變類(lèi)型通過(guò)方便改變數(shù)據(jù)才是修改內(nèi)存中的數(shù)據(jù),使用賦值”=”號(hào)并不是修改內(nèi)存中的數(shù)據(jù),而是開(kāi)辟出一塊新的空間來(lái)存放新的數(shù)據(jù)。

兩個(gè)實(shí)例:

1 demo_list = [1, 2, 3]2

3 print("定義列表后的內(nèi)存地址 %d" %id(demo_list))4

5 demo_list.append(999)6 demo_list.pop(0)7 demo_list.remove(2)8 demo_list[0] = 10

9

10 print("修改數(shù)據(jù)后的內(nèi)存地址 %d" %id(demo_list))11

12 demo_dict = {"name": "小明"}13

14 print("定義字典后的內(nèi)存地址 %d" %id(demo_dict))15

16 demo_dict["age"] = 18

17 demo_dict.pop("name")18 demo_dict["name"] = "老王"

19

20 print("修改數(shù)據(jù)后的內(nèi)存地址 %d" % id(demo_dict))

輸出結(jié)果:

定義列表后的內(nèi)存地址 2574756635272

修改數(shù)據(jù)后的內(nèi)存地址 2574756635272

定義字典后的內(nèi)存地址 2574760169336

修改數(shù)據(jù)后的內(nèi)存地址 2574760169336

*可見(jiàn)通過(guò)方法來(lái)修改的字典或者列表,其內(nèi)存地址是不變了,也說(shuō)明了字典列表是可變的。

1 a = 1

2 print(id(a))3 a = "hello"

4 print(id(a))5 a = [1, 2, 3]6 print(id(a))7 a = [3, 2, 1]8 print(id(a))

輸出結(jié)果:

140714386514768

2214895252792

2214894789256

2214894789320

*說(shuō)明‘=‘賦值運(yùn)算符是重新為變量指向一個(gè)新的內(nèi)存地址,而不是修改原來(lái)內(nèi)存的數(shù)據(jù),注意與上例區(qū)別好。

字典的key與哈希

字典的鍵必須是不可變類(lèi)型數(shù)據(jù),而值則可以是任意類(lèi)型的數(shù)據(jù)。

這是因?yàn)椴豢勺冾?lèi)型的數(shù)據(jù)才會(huì)有哈希值,而字典的鍵必須要有對(duì)應(yīng)的哈希值。

Python中有一個(gè)內(nèi)置函數(shù)hash(o)可以接受一個(gè)不可變類(lèi)型數(shù)據(jù)作為參數(shù),返回一個(gè)整數(shù),這個(gè)整數(shù)可以看成是該數(shù)據(jù)的特征碼,因此,相同的數(shù)據(jù)內(nèi)容得到相同的整數(shù),而不同的數(shù)據(jù)內(nèi)容則得到不同的整數(shù)。

另外,由于列表是不可哈希類(lèi)型的,因此決定了它的有序性,可重復(fù)性。

由于字典、集合是可哈希類(lèi)型的,因此具有不可重復(fù),無(wú)序性。

總結(jié)

以上是生活随笔為你收集整理的python数据类型可变和不可变_Python——可变和不可变类型数据的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。