Python

SymPy で 点の内外判定

環境: Windows 7 32bit, Python 2.7.3 ある点が、多角形の内側にあるか外側にあるかを判定する。 Python の場合、 SymPy ライブラリを使うと楽にできる。 SymPy は記号計算のためのライブラリで、いろいろなことができる。 SymPy のインストール Python 2の…

Windows7 32bit + Python 2.7.3 で MeCab 0.994の Pythonバインディングをインストール

これまで何回かコンパイルに失敗してて、初めてうまくいったのでメモ。 追記(2013-09-08) この記事で使われている Python と MeCab のバージョンはちょっと古いです。新しめのバージョンでのインストールについて、記事を書いてくださっている方がいるので…

Python と Perlの split() の maxsplit の違い

Python は maxsplit + 1 個に分けるのに対して、 Perl は maxsplit 個に分ける。 Python は指定した数と、残りに分けるイメージ。Perlは指定した数に分けるイメージ。 Python >>> a = "aaa bbb ccc" >>> a.split(" ", 0) ['aaa bbb ccc'] >>> a.split(" ", 1…

リストのスライスメモ

L[:] 要素の値コピー。ただし入れ子になってるのは参照になる。 >>> l = [1,2,3] >>> a = l # 参照コピー >>> a [1, 2, 3] >>> l.append(4) # リストlを変更する >>> l [1, 2, 3, 4] >>> a [1, 2, 3, 4] # リストlにともなって、値が変わっている >>> a = l[…

pytest日本語ドキュメント

http://pytest.org/latest-ja/contents.html pytest.mark.parametrize で複数の引数をとる関数のテストをしたいんだけど、値の受け渡しをするような関数を書けばいいのかな。

pytest関係の記事メモ

データ駆動テストを nose と pytest でやってみた - forest book Parametrizing tests — pytest documentation parametrizeを使った書き方は今回はじめて知った。便利。

zip() + for 文は総当たりじゃない

あたり前のことなんだけど、すっかり忘れてた。zip() は2つのリストの要素を順に取り出し、ペアにしたリストを作る関数で、以下の様な動作をする。 >>> a = ['one', 'two', 'three'] >>> b = [1,2,3] >>> zip(a,b) [('one', 1), ('two', 2), ('three', 3)] f…

pydoc とかの書き方サイト

参考 Google サイト Python プログラムを書く前に - 大カフェイン ちゃんと調べてないけど、 pydoc の書き方、 pep にあったりしないのかな。 pydoc の引数や返り値に型を書く書式を知りたい。

2つのリストの要素のペアのリストが欲しい

[1,2,3]と[4,5,6]の2つのリストがあった時、 [(1,4), (1,5), (1,6), (2,4), ...] というリストが欲しい。リスト内包で作れる。 >>> a = [1,2,3] >>> b = [4,5,6] >>> [(x, y) for x in a for y in b] [(1, 4), (1, 5), (1, 6), (2, 4), (2, 5), (2, 6), (3, …

括弧ペアのリスト

paren_pairs = [('(', ')'), ('[', ']'), ('{', '}'), ('(', ')'), ('[', ']'), ('「', '」'), ('【', '】'), ('『', '』'), ('〈', '〉'), ('《', '》'), ('〔', '〕'), ('{', '}'), ('"', '"'), ("'", "'"), ('’', '’'), ('”', '”')] どこかで使うか…

nltk.defaultdict は collections.defaultdict と同じ

collections.defaultdict は Pyhton2.5で追加されたので、 Python2.4 以前のユーザーのために nltk.defaultdict が用意されているらしい。(『入門 自然言語処理』208p より)

pyhtonの整数同士の割り算

解を小数で欲しい時は浮動小数点数にキャストするんだけど、どのタイミングでキャストするのか調べる。 整数同士 >>> 1 / 2 0 整数なので0になる。 それぞれキャストしてみる。 >>> float(1) / 2 0.5 >>> float(1) / float(2) 0.5 >>> 1 / float(2) 0.5 >>> …

pythonのファイル名の先頭に数字を使うとimportできなくなる。

多分そういう制限があるんだと思う。 PEP-8にはlowercaseとしか書かれてない。仕様はちょっと探したけどまだ見つかってない。 http://oldriver.org/python/pep-0008j.html 多分変数名の制約と同じだと思う。 roundを初めて使ったのでメモ round( x[, n]) x …