0

重複の可能性:
LIST.append(1) と LIST = LIST + [1] の違いは何ですか (Python)

特にリストの場合、パラメーターが関数に渡される方法とその可変性に疑問があります。

次のことを検討してください...

def add_list(p):
    p = p + [1]

def append_list(p):
   p.append(1)

p = [1, 2, 3]

add_list(p)
print p

append_list(p)
print p

私が得る出力は...

[1, 2, 3]
[1, 2, 3, 1]

関数で追加すると元のリストが変更されるのに、演算子 + を使用すると元のリストが変更されないのはなぜですか?

4

1 に答える 1

3

関数内の代入演算子は、新しいローカル変数を作成します。*add_list* 関数では、pはローカル変数です。

于 2012-11-18T10:23:30.207 に答える