読者です 読者をやめる 読者になる 読者になる

牌語備忘録 -pygo

あくまでもメモです。なるべくオフィシャルの情報を参照してください。

牌語備忘録 -pygo

三項演算子をPythonでやってみた

SICP Python

なんとなく知ってるような知らないような三項演算子を使ってPythonでやってみた


奇数か偶数か判定する関数

def odd_or_even(n):
    return "odd" if n % 2 else "even"
print odd_or_even(1) #odd(奇数)
print odd_or_even(100) #even(偶数)

結果

odd
even


SICP 2.2.2 Hierarchical Structures の Mapping over trees の ラムダで使った関数『scale_tree』をPythonでternary operator(三項演算子)を使ってやり直してみた

def scale_tree_ternary_operator(tree, factor):
    return map(lambda sub_tree:
                   scale_tree_ternary_operator(sub_tree, factor)
               if isinstance(sub_tree, list)
               else sub_tree * factor,
               tree)
print scale_tree_ternary_operator([1,[2,[3,4],5],[6,7]], 10)
#[10, [20, [30, 40], 50], [60, 70]]

こんなんなりました。(ちなみに以前やったものはこちら