python全局可變變量的坑

最近在寫代碼的時候會遇到一些數據結構比較複雜,列表字典相互嵌套的數據,因爲有幾個鍵的值是格式相同的字典,因此事先規定好了字典的格式:

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': []} 
發佈了74 篇原創文章 · 獲贊 18 · 訪問量 21萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章