IT Learning

実践形式でITのお勉強

Python

【Python】要素数0を判定する方法

投稿日:2021年10月18日 更新日:

概要

Pythonで条件分岐を記述する際に、要素数が0かどうかを判定したい場合があります。

例えば以下のようなfor文を記述するような場合を考えます。

lists = [[1,2,3],[2,3,4]]
for list in lists:
    print(list[1])

>2
>3

これはリストの要素(それぞれも要素)の中のインデックス1の値を表示するコードです。

ただ、このようにリスト内に空のリストが混ざっているような場合はエラーが出ます。

lists = [[1,2,3],[2,3,4],[]]
for list in lists:
    print(list[1])

>2
>3
---------------------------------------------------------------------------
IndexError                                Traceback (most recent call last)
<ipython-input-32-893ae578b494> in <module>
      1 lists = [[1,2,3],[2,3,4],[]]
      2 for list in lists:
----> 3     print(list[1])

IndexError: list index out of range

リスト内の空リストについてはインデックス1が存在しないため、index out of rangeのエラーが発生しています。

このような場合に空リストのみ判定する方法について説明します。

空リストの判定

Pythonでは 空リストはFalseの値を持ちます。 つまり、このように記述することで判定ができます。

list_emp = []
if list_emp:
    pass
else:
    print('This is False')

>This is False

冒頭の例に適用する場合は以下のようになります。

lists = [[1,2,3],[2,3,4],[]]
for list in lists:
    if list:
        print(list[1])        
    else:
        pass

>This is False

 

なお、len()を使用して、リストのサイズが0であることを使用して判定することも可能です。

lists = [[1,2,3],[2,3,4],[]]
for list in lists:
    if len(list)==0:
        pass
    else:
        print(list[1])  

空辞書の判定

辞書型についても同様に空の場合はFalseとなるため、以下のように判定することができます。

dict_emp = {}
if dict_emp:
    pass
else:
    print('This is False')

>This is False

空タプルの判定

タプルの場合も同様です。

tuple_emp = ()
if tuple_emp :
    pass
else:
    print('This is False')

>This is False

空文字の判定

空文字についても同様に判定することができます。

str_emp = ''
if str_emp:
    pass
else:
    print('This is False')

>This is False

まとめ

要素が空のものを判定するには、値がFalseであることを利用することでコードがシンプルになります。

Related

-Python
-,

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です