Kai*_*ais 5 python pass-by-reference
我想实现一个功能的"添加",结合列表L1与L2到L3:
def add(L1,L2,L3):
L3 = L1 + L2
L3 = []
add([1],[0],L3)
print L3
Run Code Online (Sandbox Code Playgroud)
上面的代码生成一个空列表而不是[1,0]- 这意味着L3没有通过引用传递.
如何L3通过参考传递?
列表已经通过引用传递,因为所有 Python名称都是引用,列表对象是可变的.使用切片分配而不是正常分配.
def add(L1, L2, L3):
L3[:] = L1 + L2
Run Code Online (Sandbox Code Playgroud)
但是,这不是编写函数的好方法.您应该只返回组合列表.
def add(L1, L2):
return L1 + L2
L3 = add(L1, L2)
Run Code Online (Sandbox Code Playgroud)
你可以用:
L3[:] = L1 + L2
Run Code Online (Sandbox Code Playgroud)
def add(L1, L2, L3):
L3[:] = L1 + L2
L3 = []
add([1], [0], L3)
print(L3)
Run Code Online (Sandbox Code Playgroud)
[1, 0]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2507 次 |
| 最近记录: |