python传递列表作为函数参数

nos*_*nos 3 python function list

乡亲,

以下代码的结果是[]为什么不是['0','1','2']?如果我想在函数foo中使psswd等于数字,我该怎么办?

number = ['0','1','2']
def foo(psswd):
    psswd = number[:]

if __name__ == '__main__':
    psswd = []
    foo(psswd)
    print psswd
Run Code Online (Sandbox Code Playgroud)

Ign*_*ams 12

您需要使用切片分配进行变异而不是重新绑定.

psswd[:] = number[:]
Run Code Online (Sandbox Code Playgroud)


Joh*_*ooy 6

number = ['0','1','2']
def foo(psswd):
    psswd[:] = number  # swap the slice around here

if __name__ == '__main__':
    psswd = []
    foo(psswd)
    print psswd
Run Code Online (Sandbox Code Playgroud)