【Python】配列が空かどうか判定するには not を使う。

isEmpty的なメソッド、ないんですねーーーーーー!?ナウでヤングなpythonなのにびっくりです。

if not を使った空配列判定

test_list = []
test_list_str = [""]
test_list_2d = [test_list]  #[[]]

if not test_list: print("test_listは空です")
if not test_list_str: print("test_list_strは空です")
if not test_list_2d: print("test_list_2dは空です")

実行結果

test_listは空です

ってことで、ひとまず正しく「中に何の要素も入ってなければ空と判定される、空文字だろうが空配列だろうが何か要素が入っていれば空とは判定されない」という挙動になっていることは確認出来ました。

(でもやっぱり明示的にisEmptyあってほしい)

lenで判定するのはまちがい。

ちなみにリストの長さをlenで求めて

if len(test_list) == 0: print("リストは空です")

ってやるのはpythonのコーディング規約的にはNGだそうです。

一応、上記のサンプル程度ならnotで判定する場合とほぼ同じ結果が返ってくるようですが、なんかもっとこうややこしい要素が絡んできたときに本当に同じ結果になるかまでは検証してないです。間違いなのでね。使わないようにしましょうね。

というわけで、個人的には明確なisEmpty的なメソッドがあって欲しいんですが、notを使えってことらしいので大人しくお約束には従おう。

ひとまず、ないんだー、って知ったというメモでした。

この記事が気に入ったらサポートをしてみませんか?