Python字典的初始化,字典参数引用传递等问题
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Python字典的初始化,字典参数引⽤传递等问题# 字典初始化⽅法⼀:
1 a = {}
2 b, c = {}, {}
3 d =dict(a="a", b="b") # b = {"a": "a", "b": "b"}
View Code
# ⽅法⼆:通过函数全局初始化
1def change():
2global 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
# ⽅法三:通过函数返回值初始化
1def change():
2 a = {"1": "1"}
3return a
4
5 a = change()
6
7# 打印
8 >> a = {"1": "1"}
View Code
# 错误⽅法:通过引⽤传参完全修改字典
1def change(a): # 传递引⽤参数,试图⽤新的字典覆盖原来的字典
2 a = {"1": "1"}
3
4 a = {}
5 change(a)
6
7# 打印
8 >> a = {} # 没有修改成功
View Code
# 这个 bug 找了好久才发现,⽤ c / c++ 引⽤传参来理解 python 不完全正确