更新時(shí)間:2023-05-15 來源:黑馬程序員 瀏覽量:
IT就到黑馬程序員.gif)
在Python中,數(shù)據(jù)類型分為可變和不可變兩種類型。簡(jiǎn)單來說,可變數(shù)據(jù)類型是可以在原地修改的,而不可變數(shù)據(jù)類型則不能直接修改,只能通過重新創(chuàng)建一個(gè)新的對(duì)象來實(shí)現(xiàn)修改。
下面是一些常見的Python數(shù)據(jù)類型,以及它們是可變還是不可變的:
可以通過一些簡(jiǎn)單的代碼演示來說明可變和不可變數(shù)據(jù)類型的區(qū)別:
# 不可變數(shù)據(jù)類型
a = 5
b = a
a = a + 1
print(a) # 輸出 6
print(b) # 輸出 5,b并沒有被修改
s1 = "hello"
s2 = s1
s1 = s1 + " world"
print(s1) # 輸出 "hello world"
print(s2) # 輸出 "hello",s2并沒有被修改
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è)變量。