私はkに、この割り当て値は、上記の例の一覧でPythonのリストの概念
> >>> l=[2,3,4]
> >>> k=l.append(14)
> >>> print k
None
> >>> print l
[2, 3, 4, 14]
「なし」値を与えている理由 をプログラミングするのpythonに新しいです、私はリストする14値を追加して、kに割り当てられたが、 kは印刷されていません。なぜ印刷されたのか理由を教えてください。
おかげ mukthyar
私はkに、この割り当て値は、上記の例の一覧でPythonのリストの概念
> >>> l=[2,3,4]
> >>> k=l.append(14)
> >>> print k
None
> >>> print l
[2, 3, 4, 14]
「なし」値を与えている理由 をプログラミングするのpythonに新しいです、私はリストする14値を追加して、kに割り当てられたが、 kは印刷されていません。なぜ印刷されたのか理由を教えてください。
おかげ mukthyar
append
は、現在のリストを変更し、何も返しません。用途:自分のインスタンスを変異Pythonで
k = l + [14]
または
k = l[:] # Copy list
k.append(14)
ほとんどのメソッドオブジェクトのコピーを返しません(.append()、.sort()、ら。)。したがって、l.append(X)はl.sort()と同様に実際には "None"を返します。 list.append方法が変更リストを返さない -
あなたが期待されて見ている何l.append(14)
k = l[-1]
は:
は、おそらくより多くのようなものを使用したいと思います。 Pythonチュートリアルのrelevant sectionを見てみると、有用な値を返すメソッドがそのまま記述されていることに気付くでしょう。
対話インタプリタでの作業、あなたは式は出力の欠如によってなし得ないことを伝えることができます:
>>> l = [1, 2, 3]
>>> l.append(14)
>>>
(理論上)list.appendがリストを返された場合は、代わりに次のように表示します:
を>>> l = [1, 2, 3]
>>> l.append(14)
[1, 2, 3, 14]
>>>
このようにインタラクティブなインタープリタを使用すると、すべての値を印刷できなくなります。
pythonのデフォルトの戻り値の型はNone
です。関数が値を返さない場合は、その関数からNone
を取得します。オブジェクトにはさまざまな機能があります。いくつかの関数は同じオブジェクトに対して実行され、他の関数は変更されたコピーを返します。たとえばlist.sort
は元のリストを変更しますが、sorted
は元のリストを変更せずに新しいソート済みリストを返します。したがってappend
はオブジェクト上で作業しているので、新しい変更されたコピーを返す代わりにオブジェクトの値を変更します。
希望すると、append
メソッドについてのご意見を明確にします。簡単な単語の追記機能で
list.append(x)
Add an item to the end of the list; equivalent to a[len(a):] = [x].
なしあなたは、それは追加のリストを印刷することを期待なぜ
が、何も返しませんか?あなたはその文書を読んだことがありますか? –
rel:http://stackoverflow.com/questions/1452995/why-doesnt-a-python-dict-update-return-the-object – georg