Pythonのリスト操作には様々なメソッドがありますが、その中でもextend
メソッドは特に便利です。このメソッドは、指定したイテラブル(リスト、タプル、辞書、文字列など)のすべての要素をリストの末尾に追加します。
しかし、extend
メソッドに空リストを渡した場合、何が起こるでしょうか?結論から言うと、リストはそのままで、何も変わりません。しかし、この挙動には理由があります。
x = [2]
x.extend([]) # Nothing is printed because the return value is None
print(x) # Output: [2]
上記のコードを見てみましょう。extend
メソッドはリストを変更しますが、自身(self
)を返さないため、None
が返されます。これは、extend
関数がリストをインプレース(つまり、元のリスト自体を変更)で変更することを覚えておくための仕組みです。
同様に、sort
メソッドも常にNone
を返します。これらのメソッドはリストを直接変更するため、これらのメソッドがNone
を返すことで、これらのメソッドがリスト自体を変更することをユーザーに思い出させます。
したがって、extend
メソッドを使用してリストを拡張する場合、特に空リストを追加する場合でも、元のリストが変更されることを覚えておくことが重要です。そして、その結果を再度変数に代入する必要はありません。
以上、Pythonのextend
メソッドと空リストについての解説でした。この情報がPythonのリスト操作を理解する助けになれば幸いです。