2010-09-01から1ヶ月間の記事一覧

pythonでrun-length decode

Prologの練習問題サイトにrun-length encodingがあったのでやってみます。 PrologSite問題はこれ。 1.12 (**) Decode a run-length encoded list. Given a run-length code list generated as specified in problem 1.11. Construct its uncompressed versio…

リスト内包表記とジェネレータの比較

エキPy読書会でジェネレータお勧め!どんどん使うべし的な話がありました。 ジェネレータの使いどころとしては、膨大なデータを扱うときや実行に時間がかかるときということでした。 リスト内包と比べるとメモリの使用量が少なくて済むことや、複雑な処理も…

pythonでrun-length encoding

Prologの練習問題サイトにrun-length encodingがあったのでやってみます。 PrologSite問題はこれ。 1.10 (*) Run-length encoding of a list. Use the result of problem 1.09 to implement the so-called run-length encoding data compression method. Con…

初トラックバックだ。

ブログ読んでたら0と1を次々と返したいなんていうのがあったのでやってみた。 Algorithm - 0と1を次々と返す簡単なお仕事 class Cycle(object): def __init__(self, vals=[0,1]): import itertools self.it = itertools.cycle(vals) def __call__(self): ret…

pythonでuniq

今日はpythonでuniqを実装してみましたよ。 def iuniq(it): if hasattr(it, '__iter__'): readed = set() for i in it: if i in readed: continue else: readed.add(i) yield i else: raise TypeError('argument has not __iter__.') 書いてから思ったけど、…