在python中資料型別包含以下幾類:
1.數字型別(number):整型(int),浮點型(float),複數(complex)
2.字串型別(string)
3.列表(list)
4.集合(set)
5.元組(tuple)
6.字典(dict)
上面的型別中屬於可變型別的是:dict,list,set
屬於不可變型別的是:tuple,string,number
判斷是可變資料型別還是不可變資料型別用記憶體值是否可變來判斷。
例如數字型別
num1 = 5
num2 = 5
print(id(num1))
print(id(num2))
num1 = 6
num2 = 6
print(id(num1))
print(id(num2))
上面**輸出的結果是
上面可以看到把5賦值給num1和num2的時候記憶體位址是相同的,把6賦值給num1和num2的時候記憶體位址也是相同的,num1和num2接收5和6記憶體就會發生變化,記憶體位址與值的對應關係是不能變的,這種就叫不可變資料型別
再來看下可變資料型別list
list = [1,2,3]
print(id(list))
list[0] = 3
print(id(list))
上面**輸出的結果是
可以看到把list的值改變,記憶體位址並沒有發生變化,這種就是可變資料型別
在實際應用上到底選擇可變資料型別還是不可變資料型別,用list和tuple來舉個例子
import sys
a = [1, 2, 3, 4, 5, 6, 7, 8, 9]
b = (1, 2, 3, 4, 5, 6, 7, 8, 9)
print(sys.getsizeof(a),sys.getsizeof(b))
import timeit
print('列表建立時間%0.3fms'%timeit.timeit(stmt="[1, 2, 3, 4, 5, 6, 7, 8, 9]"),
'列表建立時間%0.3fms'%timeit.timeit(stmt="(1, 2, 3, 4, 5, 6, 7, 8, 9)"))
執行結果如下
列表佔128byte,元組佔112byte,列表的建立時間0.065ms,元組的建立時間是0.008ms,所以我的總結是
如果資料是不常改動並且存活時間比較長的就用tuple,因為占用的資源比較少,如果是經常改動的而且存活時間不是那麼長的就用list
以上僅代表我個人看法,如有錯誤請大神指點
python 可變資料型別 不可變資料型別
在python中,資料型別分為可變資料型別和不可變資料型別,不可變資料型別包括string,int,float,tuple,可變資料型別包括list,dict。所謂的可變與不可變,舉例如下 a test print a 0 t a 0 1 traceback most recent call las...
python 可變資料型別 不可變資料型別
在python中,資料型別分為可變資料型別和不可變資料型別,不可變資料型別包括string,int,float,tuple,可變資料型別包括list,dict。所謂的可變與不可變,舉例如下 a test print a 0 t a 0 1 traceback most recent call las...
python 可變資料型別和不可變資料型別
不可變資料型別更改後位址發生變化,可變資料型別更改後位址不發生變化。看 說話 a 1 int b string string c 1,2 tuple print type a id a print type b id b print type c id c a 1b 1 c 3 4 print a,...