久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術(shù)文章
文章詳情頁

python中數(shù)字是否為可變類型

瀏覽:2日期:2022-07-18 10:45:45

本文以Python3為例,包括六種數(shù)據(jù)類型:

1、數(shù)字(Number):int整型long長整型float浮點(diǎn)數(shù)complex復(fù)數(shù)布爾值(0和1)2、字符串(String)3、列表(List)4、元組(Tuple)5、字典(Dictionary)6、集合(Set)

通過id函數(shù)查看變量i的內(nèi)存地址進(jìn)行驗證(使用hex(id(i)) 可以查看16進(jìn)制的內(nèi)存地址)

不可變類型:Number、String、Tuple

對不可變類型的變量重新賦值,實際上是重新創(chuàng)建一個不可變類型的對象,并將原來的變量重新指向新創(chuàng)建的對象(如果沒有其他變量引用原有對象的話(即引用計數(shù)為0),原有對象就會被回收)。

對于不可變類型int,無論創(chuàng)建多少個不可變類型,只要值相同,都指向同個內(nèi)存地址。

例如Number:

>>> number1 = 123>>> id(number1)8790928028112>>> number2 = 123>>> id(number2)8790928028112>>> number3 = 321>>> id(number3)49143760>>>

可以看到執(zhí)行 i += 1 時,內(nèi)存地址都會變化,因為int 類型是不可變的。

>>> i = 5>>> id(i)8791205700368>>> i += 1>>> id(i)8791205700400>>>>>> j = i>>> id(j)8791205700400>>> j6>>>

可變類型:List、Dictionary、Set

對可變數(shù)據(jù)類型重新賦值,并沒有創(chuàng)建新的對象。

例如List:

>>> list1 = [1,2,3,4,5]>>> id(list1)49307976>>> list2 = [1,2,3,4,5]>>> id(list2)49307784>>> list1.append(123)>>> list1[1, 2, 3, 4, 5, 123]>>> id(list1)49307976>>>

如果執(zhí)行l(wèi)ist1=list2,因為list1、list2指向同個內(nèi)存地址,而list1、list2的類型都是List,可變類型,對list1、list2任意一個List進(jìn)行修改,都會影響另外一個List的值。

>>> list1[1, 2, 3, 4, 5, 123]>>> id(list1)49307976>>>>>> list1 = list2>>> id(list1)49307784>>> id(list2)49307784>>> list2[1, 2, 3, 4, 5]>>> list2.append(456)>>> list1[1, 2, 3, 4, 5, 456]>>> list2[1, 2, 3, 4, 5, 456]>>>

總而言之:

不可變類型是指向值(Value),值不變,則對象不變;值變,則對象變。

可變數(shù)據(jù)類型是指向名字(Name),名不變,則對象不變;名變,則對象變。

內(nèi)容擴(kuò)展:

Python中可變類型和不可變類型的數(shù)據(jù)?

可變類型有l(wèi)ist,dict.不可變類型有string,number,tuple. 當(dāng)進(jìn)行修改操作時,可變類型傳遞的是內(nèi)存中的地址,也就是說,直接修改內(nèi)存中的值,并沒有開辟新的內(nèi)存。 不可變類型被改變時,并沒有改變原內(nèi)存地址中的值,而是開辟一塊新的內(nèi)存,將原地址中的值復(fù)制過去,對這塊新開辟的內(nèi)存中的值進(jìn)行操作。

到此這篇關(guān)于python中數(shù)字是否為可變類型的文章就介紹到這了,更多相關(guān)python中數(shù)字是不可變類型嗎內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 蓬莱市| 喀喇沁旗| 神木县| 刚察县| 阜新市| 泉州市| 阿城市| 高阳县| 柳河县| 香河县| 玛曲县| 金溪县| 陇南市| 扶风县| 柘荣县| 四川省| 大港区| 汝城县| 新和县| 阳原县| 远安县| 黎平县| 阜城县| 鄂托克前旗| 乌鲁木齐县| 拉孜县| 米泉市| 富平县| 房产| 周至县| 洛扎县| 邮箱| 靖远县| 温宿县| 桂林市| 汝南县| 滦平县| 泾源县| 南宁市| 丰宁| 新干县|