1. ホーム
  2. python

Pythonでappend()が常にNoneを返すのはなぜですか?[重複しています]。

2023-08-29 21:40:28

質問

list = [1, 2, 3]
print(list.append(4))   ## WRONG, print does not work, append() returns None

## RIGHT:
list.append(4)
print(list)  ## [1, 2, 3, 4]

私はPythonを学んでいるのですが、この問題が言語特有のものなのか、またどのように append がPythonでどのように実装されているのかがわかりません。

どのように解決するのですか?

append は突然変異(破壊)操作です(新しいリストを返す代わりに、その場でリストを変更します)。非破壊的な同等の操作を行う慣用的な方法として append は次のようになります。

l = [1,2,3]
print l + [4] # [1,2,3,4]
print l # [1,2,3]

という質問に対して、私の推測では、もし append が新しく修正されたリストを返した場合、ユーザはそれが非破壊的であると考えるかもしれません、つまり、彼らは次のようなコードを書くかもしれません。

m = l.append("a")
n = l.append("b")

とし n[1,2,3,"b"]