Python

Function that returns function that repeats boolean results

TrueだったらFalseで、FalseだったらTrueにしたい。なんかそんなことそこかしこで必要で、その為の便利なものがあるのかなぁと思ったんだけど無いぽい。 0と1を次々返す方法 - When it’s ready. Yieldpython実装は自然だが、next()がわずらわしい。 404 Blog…

Iterable of integers except specific value

数値計算の実装を行っていると、ある特定の数値を除外した数列を生成したくなることがあります。行列の特定の行や列を除いた要素を処理する際、例えば枢軸演算を行う場合がこれにあたります。Pythonで簡単に実装すると以下となります。 for i in range(N): i…

Treating Vectors and Matrices in Python

先日のエントリでは射影を用いた矩形の交差判定について記載しました。その際の実装は以下のようなものでした。 def intersect(A, B): for a, b in zip(zip(*A), zip(*B)): if max(b) < min(a) or max(a) < min(b): return False return True 実装にはベクト…

Composing generators in Python

先日のエントリでは、射影(Projection)を用いた領域検索について解説し、簡単な実装を行いました。今回はその実装をリファクタリングしてみます。 では、早速始めましょう。先日のコードをジェネレータとしてsequential_search()関数にまとめたコードから開…

Adding Thousand Separators using itertools

この問題が面白そうだなと思い、私もPythonで挑戦してみました。目的は、数字にコンマを振ることです。 「Python のジェネレータ (2)」に引き続き、ジェネレータに慣れるための練習。o(+_+)o どかにまた例題はないかと散策していたら、「数字にコンマを振る…

Using closure in Python(2)

先日のエントリで、Pythonのクロージャについて記載しました。問題のコードは以下のようなものでした。 counter1.py: #!/usr/bin/python -t def make_counter(): x = 0 def counter(): x += 1 print x, return counter return counter make_counter()()()() …

Using closure in Python

随分と久しぶりのエントリになってしまいました。色々と思うところがあって、最近はPythonを使うことが多くなってきました。不慣れなこともあり、当初はなかなか思った通りに記述することが出来ませんでしたが、最近はちょっとだけ慣れてきたように感じてい…