2016-02-24 33 views
7

私はこれをたくさん試しています。'append()'を使わずに新しい値をリストに追加して、その値を新しく作成したリストに格納する方法は?

>>> x = [4,5] 
>>> y = x.append(7) 
>>> print y 
None 
>>>print x 
[4, 5, 7] 

これはどのように可能ですか?

新しいリストyに値を格納しようとすると、その結果がNoneになり、現在のリスト `xが変更されます。

これを行う方法は他にもありますか?

+0

できません。単に 'y = 7'、' x.append(y) 'だけしてください。 – jonrsharpe

答えて

4

を関数append()がリストを変更し、Noneを返します。

あなたがしたいことを行うベストプラクティスの1つは、+演算子を使用することです。

のはあなたの例を見てみましょう:

>>> x = [4, 5] 
>>> y = x + [7] 
>>> x 
[4, 5] 
>>> y 
[4, 5, 7] 

+オペレータは、新しいリストを作成し、そのまま元のリストを残します。

2

あなたはx.append()は、インプレースリストを変異するリストxの方法があるので、これは可能である

x = [4,5] 
y = x + [7] 
# x = [4, 5] 
# y = [4, 5, 7] 
4

行うことができます。すべてのメソッドは副作用を実行する必要があるため、戻り値は必要ありません。したがって、Noneが返され、変数yが割り当てられます。

私はあなたがxのコピーを作成し、それに追加するかしたいと思う:

y = x[:] 
y.append(7) 

または実際に新しいリストを作成し、リスト操作のy結果割り当てる:

y = x + [7] 
関連する問題