■
私の気に入ったPythonicな書き方。
- リスト内包表記:Pythonといったら、まずこれ。
- 代入が複数可。swapも簡単「a, b = b, a」
- 比較も複数可。「a != x or b != y」より「(a, b) != (x, y)」がわかりやすい。
- 範囲判定。「0 <= x < n」とか「x in range(n)」。わかりやすい。
- 反転。「a[::-1]」
- 上の応用でaが2次元のとき、90度回転。「zip(*a[::-1])」
- ポインタでなく指している先を変える。「a[:] = ...」
- コンテナかどうか。「isinstance(..., collections.Iteranle)」
- 最大公約数
def gcd(a, b): while b: a, b = b, a % b return a