0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

listがNoneかどうかを判定する

Last updated at Posted at 2022-11-28

listがNoneかどうかで条件分岐させたい。

Noneと比べるときは、=ではないという話。
listがNoneの時とそうでない時があり、この条件に従って分岐させたかった。しかし、エラーに阻まれ敗北...

list = hoge#noneの時もあれば、[810, 114]のように値がある場合もある

if list = None
    print('noneです!')
else
    print('noneではないです。')

ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

listが要素を持つとき(Noneではない時)にエラーが出ました。リストは複数の要素を持つので、a.any() or a.all()を用いずにNoneと比べることはできないようです。

a.any()を使ってみた

list = hoge#noneの時もあれば、[810, 114]のように値がある場合もある

if any(list) = None
    print('noneです!')
else
    print('noneではないです。')

すると、今度はlistがNoneの時にエラー。ダメみたいですね...

TypeError: 'NoneType' object is not iterable

Noneの時はany()とか使えないよ、Noneだから...という意味でしょうか。

解決

listとNoneを比べるときに、=ではなくisを使うことで解決しました。

list = hoge#noneの時もあれば、[810, 114]のように値がある場合もある

if list is None
    print('noneです!')
else
    print('noneではないです。')

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?