Python if文 or分岐がたくさんある場合

投稿者: | 2017年2月4日

if文で分岐するときにorの条件が多いとソースコードが見づらくなる。

そのため、以下のように書くと文字が少なくなり、楽になる。

# !/user/bin/env python
def main():
    list = [i for i in range(10)]
    print(list)  # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

    for i in list:
        if i == 1:
            print('a:{}'.format(i))
        elif i == 2:
            print('a:{}'.format(i))
        elif i == 3:
            print('a:{}'.format(i))
        else:
            print(i)

    """
    0
    a:1
    a:2
    a:3
    4
    5
    6
    7
    8
    9
    """

    for i in list:
        if i in {1, 2, 3}:
            print('a:{}'.format(i))
        else:
            print(i)
    """
    0
    a:1
    a:2
    a:3
    4
    5
    6
    7
    8
    9
    """
if __name__ == '__main__':
    main()

あまり使う機会はないかもしれないけど、便利であると思う。

追記

switch文がないのは、あきらめるしかない。

ifとelifを使うしかない・・・

ダックタイピングを上手く使えばきれいになるのかな。

2022/11追記

いまだと、match文があるからこれを使うのが良いかも

https://qiita.com/ksato9700/items/3ce4c68c0d713874b693

Pocket

コメントを残す

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

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください