Python

Python環境でScala風リスト操作をできるようにするパッチを書いた

abst こういう書き方ができるようになるパッチ書いた [1, 2, 3, 4].map(_ * 10).reduce(_ + _) motivation かねてよりpythonのmap,filter,reduceはうっとしくてかなわん、と思っていた。何より、 method chain にまったく向いていない。 例えば、Scalaでは以…

defaultdictのdefaultdict

pythonの標準ライブラリにdefaultdictという便利な道具がある。 ところでたまにdefaultdictのdefaultdictをやりたくなるが、いつも忘れていつも同じこのstackoverflowの記事に流れ着く。 毎度毎度検索しているので、ちゃんとメモればきっと忘れないはず。 普…

Aptana Studio 3とPydevのハイライティング

IDEマンセー言っている割に、最近コード書くときはもっぱらvimかサクラエディタです。こんばんわ。 そんな僕も時代の流れに乗ってAptana Studio 3を触ってみました。まあ、eclipseもaptana 2も触ってはいたわけですが。 3になって、デフォルトのカラーテーマ…

DjangoでXMLRPCとかを使うとき

なんか403になるなー、と思ったら、CSRF対策をご丁寧にDjangoさんがやってくれちゃってます。 さすが、ジプシージャズの帝王は違うね。 ●対策 突貫でやるなら@csrf_exemptデコレータでOFF。 詳しくは本家本家いわく、あまりオススメの方法でないそうですが、…

PythonでMethod Missing

聞くところによると、RubyにはMethod Missingなる機能があるとか。 いわく、オブジェクトにメソッドがない場合に、どういう処理をするかを記述するとか。 こいつぁ、われらがPythonにも欲しい機能です。 上記の文面をまともに受け取る使い方でも良いのですが…

Project Euler Problem 84

モノポリーで、どの升目に止まりやすいかという問題。 まじめに計算できそうな感じだけど、せっかくなのでサンプリングしてみる。 ただひたすら面倒なだけ。 import random # monopoly simulator cells = [ 'GO', 'A', 'CC', 'A', 'T', 'R', 'B', 'CH', 'B',…

スライスでちょっと考え込んだ

Pythonにて、 s = "123456789" というようなリスト(この場合文字列だが)で、マイナスのインデックスを指定してスライスすると、末尾から数えてくれる。 print s[-4:-1] とすれば"678"が取れる。 じゃあマイナスインデックスから、リスト末尾までのスライス…

Project Euler 80

久しぶりに。 高校の時の参考書に載っていた。 今見ても、こんな面倒な手順を覚えられるかと思う。おおむねこんな感じ。なんだか教科書に乗っている手順をそのまま書き下しているだけなので、すごい汚いなぁ。 def getSqrtDigitSum( n, howmanydigits): if h…

Pythonでリストから要素を取り出しつつ削除する場合

Pythonメモ リストをループでまわす場合、要素を一つ一つ取り出すけど、削除しつつだとどうなるのだろう? 現在値の場合 counter = 0 for i in l: if i % 2 == 0: del(l[counter]) counter+=1 print l 出力 >>> l [1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 2…

相変わらずProject Euler24, 48

もはやProject Euler日記になっている.いい加減抜けださないと生活に支障が出る(苦笑) ハッカソンでであった人に影響されて,Pythonを書きたくなったのでPythonで解きました.問題24 0〜9の数字を辞書順に並べたときの1M番目先頭が0である場合の数 9! 先…