ipythonにはswitch, case文はありません。
breakの書き忘れで変なバグを生まないように…だとか。
でも、if, elifを重ねるのって嫌ですよね。
特に同一変数の評価をif, elifで書くとなんだか非効率な気もする…
breakの書き忘れで変なバグを生まないように…だとか。
でも、if, elifを重ねるのって嫌ですよね。
特に同一変数の評価をif, elifで書くとなんだか非効率な気もする…
そこで、こんな書き方。
n = 0 x = 100 val = { 0: lambda x: x + 1, 1: lambda x: x + 2, 2: lambda x: x + 3 }.get(n)(x) print val # 101
ちょっとわかりにくい気もしますが、
イディオムとして覚えてしまえば、switch, caseとさほど変わらないです♪
0 件のコメント:
コメントを投稿