私はこれをたくさん試しています。'append()'を使わずに新しい値をリストに追加して、その値を新しく作成したリストに格納する方法は?
>>> x = [4,5]
>>> y = x.append(7)
>>> print y
None
>>>print x
[4, 5, 7]
これはどのように可能ですか?
新しいリストy
に値を格納しようとすると、その結果がNone
になり、現在のリスト `xが変更されます。
これを行う方法は他にもありますか?
私はこれをたくさん試しています。'append()'を使わずに新しい値をリストに追加して、その値を新しく作成したリストに格納する方法は?
>>> x = [4,5]
>>> y = x.append(7)
>>> print y
None
>>>print x
[4, 5, 7]
これはどのように可能ですか?
新しいリストy
に値を格納しようとすると、その結果がNone
になり、現在のリスト `xが変更されます。
これを行う方法は他にもありますか?
を関数append()
がリストを変更し、None
を返します。
あなたがしたいことを行うベストプラクティスの1つは、+
演算子を使用することです。
のはあなたの例を見てみましょう:
>>> x = [4, 5]
>>> y = x + [7]
>>> x
[4, 5]
>>> y
[4, 5, 7]
+
オペレータは、新しいリストを作成し、そのまま元のリストを残します。
あなたはx.append()
は、インプレースリストを変異するリストx
の方法があるので、これは可能である
x = [4,5]
y = x + [7]
# x = [4, 5]
# y = [4, 5, 7]
行うことができます。すべてのメソッドは副作用を実行する必要があるため、戻り値は必要ありません。したがって、None
が返され、変数y
が割り当てられます。
私はあなたがx
のコピーを作成し、それに追加するかしたいと思う:
y = x[:]
y.append(7)
または実際に新しいリストを作成し、リスト操作のy
結果割り当てる:
y = x + [7]
できません。単に 'y = 7'、' x.append(y) 'だけしてください。 – jonrsharpe