背景:
最近基於python寫接口自動化腳本,從Excel表中讀取所有數據,每一行數據保存爲字典,then將多行字典數據保存到一個列表中
例子:
dd = {"a":1,"b":10}
i = 2
list1 = []
while i < 5:
dd["a"] = i
i +=1
list1.append(dd)
print("list1: {}".format(list1))
預測結果:
list1:[{'b': 10, 'a': 2}, {'b': 10, 'a': 3}, {'b': 10, 'a': 4}]
實際結果:
list1:[{'b': 10, 'a': 4}, {'b': 10, 'a': 4}, {'b': 10, 'a': 4}]
分析:數據分可變類型和不可變類型,python中字典是可變類型,列表中實際保存的是字典所指的那片內存,而這片內存中內容,保存的是最後一次修改的值。
1 對象的創建和引用
在python中,一切都是對象,對象都具有三個屬性:地址_ID,類型_Type,值_Value
ID: 一個對象的唯一標識
Type: 標識對象的類型
Value: 對象的值
a is b 通過ID判斷 對象a和對象b是否是同一對象
a == b 通過value判斷 對象a的值和對象b的值是否相等