Python 字典的初始化,字典參數引用傳遞等問題


# 字典初始化方法一: 

1 a = {}
2 b, c = {}, {}
3 d =dict(a="a", b="b")  # b = {"a": "a", "b": "b"}
View Code

 

# 方法二:通過函數全局初始化

 1 def change():
 2     global a, b, c   # 完全修改 a, b, c 要使用 global, 部分修改鍵值不需要 global
 3     a = {"1": "1}
 4     b = {"2": "2}
 5     c = {"3": "3"}
 6 
 7 a, b, c = {}, {}, {}
 8 change()
 9 
10 # 打印
11 >> a = {"1": "1}
12 >> b = {"2": "2}
13 >> c = {"3": "3"}
View Code

 

# 方法三:通過函數返回值初始化

1 def change():
2     a = {"1": "1"}
3     return a
4 
5 a = change()
6 
7 # 打印
8 >> a = {"1": "1"}
View Code

 

# 錯誤方法:通過引用傳參完全修改字典

1 def change(a):   # 傳遞引用參數,試圖用新的字典覆蓋原來的字典
2     a = {"1": "1"}
3 
4 a = {}
5 change(a)
6 
7 # 打印
8 >> a = {}    # 沒有修改成功
View Code

 

# 這個 bug 找了好久才發現,用 c / c++ 引用傳參來理解 python 不完全正確


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM