最近在寫代碼的時候會遇到一些數據結構比較複雜,列表字典相互嵌套的數據,因爲有幾個鍵的值是格式相同的字典,因此事先規定好了字典的格式:
dict_format = {'1': [], '2': [], '3': [], '4': []}
然後在後面賦值給不同的鍵:
room_dict['B1.2'] = dict_format
room_dict['B1.4'] = dict_format
room_dict['B1.8-12'] = dict_format
room_dict['B2.2'] = dict_format
再後面運行完之後發現所有的鍵結果都一樣了。。。仔細想想才發現是因爲dict_format是可變的全局變量,雖然賦值給了不同的鍵,但本質上還是一個字典,所以最後結果都一樣…
最後改成
room_dict['B1.2'] = {'1': [], '2': [], '3': [], '4': []}
room_dict['B1.4'] = {'1': [], '2': [], '3': [], '4': []}
room_dict['B1.8-12'] = {'1': [], '2': [], '3': [], '4': []}
room_dict['B2.2'] = {'1': [], '2': [], '3': [], '4': []}