python if elif elseの簡略化された書き方(リスト、辞書導出式、lambda関数で使用)
2017 ワード
最近のライタはリスト導出式に判断条件を追加したり、lambda匿名関数に判断条件を追加したり、プログラムが長すぎる場合があり、判断文が必要な場合は複数行書きたくない(うるさいように見える)とif elif elseの簡略化法を使ったり(この場合は可読性が悪い)、この使い方をまとめてみます.
1、if elif elseの一行の書き方
一般的な書き方:
10未満
書き方を簡略化:
10未満
簡略化された文の書き方は、if文の次の文を常にif文の前に書きます.
2、書き方の簡略化リスト導出式における運用
リスト導出式を使用する場合、条件を付けて簡略化された書き方を使用する必要があります.
一般的な書き方:
['female:小さな赤'、'female:小さな麗'、'female:小さな花'、':小さな周は女性ではありません'、':小さな飛は女性ではありません'、':小さな文は女性ではありません']
リスト式で使用する簡略化された書き方:
['female:小さな赤'、'female:小さな麗'、'female:小さな花'、':小さな周は女性ではありません'、':小さな飛は女性ではありません'、':小さな文は女性ではありません']
リストの導出式とif elseの簡略化した書き方で簡単になったのではないでしょうか.
また、リスト導出式でif文を1つだけ追加する場合とif else文を使用する場合のifの位置は異なります.
[0, 2, 4, 6, 8]
3、簡略化書き方lambda匿名関数における運用
[0, 2, 2, 1003, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20]
if elif elseのlambda関数での運用方式はその簡略化方式とそっくりである.
1、if elif elseの一行の書き方
一般的な書き方:
a = 5
if a <10:
print(' 10')
elif a<20:
print(' 10 20')
elif a<30:
print(' 20 30')
else:
print(' 30')
10未満
書き方を簡略化:
a = 5
print(' 10') if a<10 else print(' 10 20') if a<20 else print(' 20 30') if a< 30 else print(' 30')
10未満
簡略化された文の書き方は、if文の次の文を常にif文の前に書きます.
2、書き方の簡略化リスト導出式における運用
リスト導出式を使用する場合、条件を付けて簡略化された書き方を使用する必要があります.
一般的な書き方:
a = ['female: ','female: ','female: ','male: ','male: ','male: ']
b = []
for i in a:
if i[:6] == 'female':
b.append(i)
else:
b.append((i[-4:] + ' '))
b
['female:小さな赤'、'female:小さな麗'、'female:小さな花'、':小さな周は女性ではありません'、':小さな飛は女性ではありません'、':小さな文は女性ではありません']
リスト式で使用する簡略化された書き方:
a = ['female: ','female: ','female: ','male: ','male: ','male: ']
[i if i[:6] == 'female' else (i[-4:] + ' ') for i in a]
['female:小さな赤'、'female:小さな麗'、'female:小さな花'、':小さな周は女性ではありません'、':小さな飛は女性ではありません'、':小さな文は女性ではありません']
リストの導出式とif elseの簡略化した書き方で簡単になったのではないでしょうか.
また、リスト導出式でif文を1つだけ追加する場合とif else文を使用する場合のifの位置は異なります.
[i for i in range(10) if i%2 == 0]
[0, 2, 4, 6, 8]
3、簡略化書き方lambda匿名関数における運用
list(map(lambda x:x if x%2 == 0 else x+1000 if x == 3 else x+1,[i for i in range(20)]))
[0, 2, 2, 1003, 4, 6, 6, 8, 8, 10, 10, 12, 12, 14, 14, 16, 16, 18, 18, 20]
if elif elseのlambda関数での運用方式はその簡略化方式とそっくりである.