サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは本日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。
http://www.unixuser.org/~euske/doc/python/sample.py.html # 日本語トークンを切り出すための正規表現。 JP_TOKEN = re.compile(u"[一-龠]+|[ぁ-ん]+|[ァ-ヴ]+|[a-zA-Z0-9]+") http://www.ascii.co.jp/pb/ascii/archive/aftercare/1999.html [亜-煕]はJIS漢字を検出するときに使う正規表現になります。 本文中で触れている「一太郎 Lite2」の正規表現はUnicode仕様なので,すべての漢字を検出するには,[一-龠]を使用してください(龠は音読みで「ヤク」,訓読みで「ふえ」,Unicodeでは「9FA0」にあたります)。 追記 ※「すべての漢字を取り出す正規表現」については、id:toton:20051105 に記事を追加しました。
back [English] 概要: ある種の問題は、再帰を使うと非常に効率的に記述できる。 しかし大量のデータを生成するような再帰的手続きは厳密に制御する必要があり、 そういったプログラミングは難しい。Python 2.2 以降から使用可能になった ジェネレータを使うと、簡潔なコードを維持しつつ、 こうした手続きをかんたんに制御することができる。 この文書で使われているソースコードは こちら。 プレインテキスト版は こちら。 はじめに 再帰は非常に強力なメカニズムです。 時にこれは混乱を招くこともありますが、ふつう再帰を使うと、問題を簡単に記述することができます。 ある手続きが扱うデータ量が指数的に増えるような場合、これはとくにあてはまります。 木構造の探索がいい例でしょう。木の各節点はひとつ以上の子を持っていますが、 下へ下へとたどっていくにつれて、節点の数は指数的に増えていきます。
配列操作の比較表: Ruby, Python, JavaScript, Perl, C++ プログラムを書いていると、他のプログラミング言語の記憶とごっちゃになって、「配列の後ろに要素を追加するのは push だっけ、 append だっけ」などと混乱することがあります。特に Ruby, Python, JavaScript はコードの書き方が似ているので、この問題が起きがちです。 そこで、備忘録として、 Ruby, Python, JavaScript, Perl, C++ の配列操作の比較表を作りました。一番慣れている Ruby を基準にしています。間違いなどがあったらご指摘いただけると助かります。他の言語のもあるといいなあ。 Ruby (Array) Python (list) JavaScript (Array) Perl (@) C++ (std::vector)
ElementTreeの使い方の基礎 XMLパーサライブラリであるElementTreeの使い方! 目次 特長 ピュアPythonコードで実現されているので、 プラットフォームを選ばず、コンパイルレスで動作します。 (当サイトではCGIサーバにインストールして使っています。) Pythonオブジェクト形式でアクセス出来るようになっており、 Pythonユーザには扱いやすい。 おんなじスペックで速度が必要ならcElementTreeというモジュールもあるようです。 Python2.5以降では標準で内蔵されるようになりました。 Python2.5以降を使う場合、パッケージの入手は必要ありません。 ただし、importするパッケージ名が変わっています。 以下の文書におけるパッケージ名「elementtree」を「xml.etree」に読み替えてください。
MicrosoftのWSHのページ を見ていたら、Active Pythonについての記述がありそこに 以下のような記述があった。 When you read it, you'll notice that, by default, Python isn't installed as an ASP scripting engine. To register Python for use with ASP, you have to run the script C:\programfiles\python\win32comext\axscript\client\pyscript.py. The path shown here assumes you accepted the default installation location. Double-click on the script to
再帰とジェネレータ この「ジェネレータを使ったバージョン」がようやく理解できた。 def fg(args): if not args: yield "" return for i in args[0]: for tmp in fg(args[1:]): yield i + tmp return このreturnに何か意味があるのかと思って苦戦。少なくともここでは意味は無いようなのでとっぱらって、さらにどこでgeneratorが「凍結」しているのか分かりやすくするために、for in文内の暗黙的なものを明示的に書いてみた。 def h(args): if not args: yield "" else: for i in args[0]: gen = h(args[1:]) itr = gen.__iter__() while 1: try: tmp = itr.next() except
常日頃より「Pythonは遅い」と言われているわけですが、コードの書き方によってもずいぶん速度が異なるものです。 ここでは、私が実際に仕事で使っていて気づいたことを書きます。 浮動小数点数の2乗編 以下のコードを実行してみてください。 import time import math N = 1000000 a = math.pi def aa(): start = time.time() for i in xrange(N): a ** 2 t = time.time() - start print 'aa: Time= %f\n' % t return t def bb(): start = time.time() for i in xrange(N): a * a t = time.time() - start print 'bb: Time= %f\n' % t return t d
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く