Python

PyDev インストール

Editra をいろいろいじってみて、日本語文字コードに問題があることが分かった。問題点に気をつけながら使えば使えないことは無いが、初心者に布教することを考慮したツール選びをしたいので他をあたることにした。 今日は真打 PyDevを試した。 このwiki を…

重複順列パフォーマンス比較

重複順列の話 その4 何点かチューニングをしました。 xrange() をリストへ置換 ローカルスコープでの名前束縛の制限 1.は全般に言えることですが、呼び出し回数の多い関数内での for ループは、毎回 xrange() でまわすより、あらかじめ range() でリストを…

続続☆重複順列

重複順列の話 その3 前回のイテレータクラスを見てて、なんかまた別のジェネレータに出来そうだと思った。 それで出来たのがこれ。 #[NonRecurseGenPerm] def repeated_permutation_n(dimension, n): buf = [0] * dimension max_val = n - 1 max_dim = dime…

重複順列が倒せない

重複順列の話 その2 正直最初はもっと簡単な話だと思ってました。まさかシリーズ物になるとは…… まず 前回 の訂正・改良。 #[EvalPerm] def repeated_permutation(dimension, iterable): """ 順列生成ジェネレータ作成 dimension 次元数(リストの長さ) it…

文字列リテラルと '\'

'\n' などの 特殊文字を特殊文字と扱いたくないとき、Python では raw string(生文字列)を使う。 文字列の最初の ' または " の直前に r をつければ、スクリプト内の表記通りの文字列として扱われる。 >>> print '[\t]' [ ] >>> print r'[\t]' #raw string…

svn の trunk は 2.7 だった。

話題のPython2.6を使いたいけど、サードパーティ製ライブラリが使えないと困る。 加えてWindowsだと、拡張子関連付けがあってごにょごにょ…… そういえば最近使って無いけど Cygwinが入ってる。 新機能確認する程度ならCygwinに入れればいいや。 python.org …

TkとWmとMiscの関係

Tkinter のルート widget(?) である Tkinter.Tk は Wm と Misc, 2つのクラスを継承してる。 とっつきやすそうな Wm (Window Manager)に目をつけて闇雲にメソッドを呼んでみる。 >>> import Tkinter >>> wm = Tkinter.Wm() >>> wm.wm_aspect() File "", line…

重複順列生成 - evalで再帰いらず -

擬似多次元配列 の動作確認をしていて気になった。 >>> g = ((x,y,z) for x in range(2) for y in range(2) for z in range(2)) >>> for pos in g: print pos, ma[pos] (0, 0, 0) 100 (0, 0, 1) -1 (0, 1, 0) -1 (0, 1, 1) -1 (1, 0, 0) -1 以下略 ma は三次…

Pythonの辞書で擬似多次元配列

Pythonでは辞書のキーに tuple を使える。 >>> d = {(1,2,1):100, (2,2,2):200, (2,0,1):300} >>> d[(1,2,1)] 100 キーとしている tuple を三次元配列のインデクス(三次元空間の座標)とみなせば、d は三次元配列のように見える。 [ ] の中では tuple の ( …