appendの使い方について躓きがあったので共有します。
環境
Python 3.7.13
Google Colaboratory
経緯
for文で計算した値をリストに代入しpandasでデータフレームに変換して値の推移のグラフを描きたかった。その時に計算結果をappendで代入してNoneが返ってきてしまい困り果てる。
appendを関数の引数や式に代入するとNoneが返ってくる
appendで値を代入してリストを作成するとNoneになります。
a = [1]
b = [1, 2]
#appendを式に代入。c = [[1], [1, 2]]となることを期待。pythonならいけると思った
c = a.append(b)
#この時cはNoneになるみたい。Colaboratoryでcを表示させても何も出てこない
print(c)
#printの出力としてNoneが返ってくる
また、関数の引数にappendを使ってもNoneが返ってくる。
print(a.append(b))
#None
対策
あらかじめ空のリストを作成し、それにappendで代入する。
a = [1]
b = [1, 2]
#あらかじめ空のリストを作成
c = []
#空のリストに代入。appendは一つずつしか代入できないことに注意
c.append(a)
c.append(b)
print(c)
#[[1], [1, 2]]
Noneではなくエラーになってくれた方が分かりやすくて助かるのですが、そういう仕様みたいなのでどうしようもないですね。横着せずに正確にコードを書きたいものです。