更新時(shí)間:2023-05-15 來(lái)源:黑馬程序員 瀏覽量:
在Python中,數(shù)據(jù)類型分為可變和不可變兩種類型。簡(jiǎn)單來(lái)說(shuō),可變數(shù)據(jù)類型是可以在原地修改的,而不可變數(shù)據(jù)類型則不能直接修改,只能通過(guò)重新創(chuàng)建一個(gè)新的對(duì)象來(lái)實(shí)現(xiàn)修改。
下面是一些常見(jiàn)的Python數(shù)據(jù)類型,以及它們是可變還是不可變的:
可以通過(guò)一些簡(jiǎn)單的代碼演示來(lái)說(shuō)明可變和不可變數(shù)據(jù)類型的區(qū)別:
# 不可變數(shù)據(jù)類型 a = 5 b = a a = a + 1 print(a) # 輸出 6 print(b) # 輸出 5,b并沒(méi)有被修改 s1 = "hello" s2 = s1 s1 = s1 + " world" print(s1) # 輸出 "hello world" print(s2) # 輸出 "hello",s2并沒(méi)有被修改 t1 = (1, 2, 3) t2 = t1 # 嘗試修改元組 # t1[0] = 4 # 這行代碼會(huì)拋出 TypeError 異常,因?yàn)樵M是不可變的 # 可變數(shù)據(jù)類型 lst1 = [1, 2, 3] lst2 = lst1 lst1.append(4) print(lst1) # 輸出 [1, 2, 3, 4] print(lst2) # 輸出 [1, 2, 3, 4],lst2也被修改了 d1 = {"name": "Alice", "age": 30} d2 = d1 d1["age"] = 31 print(d1) # 輸出 {"name": "Alice", "age": 31} print(d2) # 輸出 {"name": "Alice", "age": 31},d2也被修改了
我們可以看到,對(duì)于不可變數(shù)據(jù)類型,賦值給另一個(gè)變量后,對(duì)原變量的修改不會(huì)影響到另一個(gè)變量;而對(duì)于可變數(shù)據(jù)類型,賦值給另一個(gè)變量后,對(duì)原變量的修改會(huì)影響到另一個(gè)變量。