いっつも忘れる Python の文法

自分、Python 嫌いなんです。インデントの制御とか、文法に何か宗教じみたものがあって。でも FITS と ROOT を同時に使うときに便利なのでしょっちゅう使います。しょっちゅう使うくせに、30 歳間近の衰えた脳みそだと、いっつも文法を思い出せない。本当に思い出せない。本当に覚え書き。追記予定。

なんで忘れるかというと、脳内の論理展開と、実際の文法の順序が一致しないからだと思う。

三項演算子

double v = a == 1 ? v1 : v2;

という C の三項演算子に等価な Python の文法は、次のように書く。

v = v1 if a == 1 else v2

配列要素に同じ処理をする

ファイルから数値を読み込んだ場合に、string から float に全て変換したりするとき。

f = open("hoge.dat")
line = f.readline()[:-1]
val = [float(x) for x in line.split()]

変数を変数名で展開

integer = 1234
word = "mage"
print "%(integer)d %(word)s" % locals()