アーカイブ( 2014 年)
Pythonの「 nose 」というライブラリをご紹介します。
import nose
nose はユニットテスト用のライブラリです。「 unittest 」という名前そのままのユニットテスト…
環境によりますが、MacOS X で IPython を pip からインストールして起動すると、起動時に次のような文章を含むメッセージが出ることがあります。
libedit detected…
Python のデコレータの使い方について見てみます。
デコレータとは、関数やクラスを「装飾」する機能のこと。デコレータを使うことで、既存の関数やクラスの中身を直接触ることなく、その外側から機…
Pythonで「特異メソッド」を作る方法をご紹介します。
特異メソッドというのは(私が知るかぎり)Ruby発祥のことばで、「特定のオブジェクトだけが持つメソッド」のこと。インスタンスメソッドは…
Python でファイルの中身を行単位でソートし標準出力へと出力するサンプルコードをご紹介します。
# coding: utf-8
import sys
# コマンドライン引数を取得
arg…
Pythonで、数学でいう nPr や nCr 、いわゆる「順列」や「組み合わせ」を作る方法をご紹介します。
結論としては itertools ライブラリを使う方法がかんたんです。
以下、順番…
追記: こちらは Python 2 を対象とした記事です。
Python 3 に関する情報は末尾に少しだけ載せている ので、そちらに興味のある方は記事の末尾まで読み飛ばしてください。
Pyth…
Pythonで、各種リテラルが if 文で評価されたときの結果を調べる方法をご紹介します。
結論としては bool 関数を使う形がよいかと思います。
例を見てみます。
# 数値型
print …
サンプルコード「what_methods」をご紹介します。
from what_methods_python import what
Ruby に「what_methods」というインスペクト…
パッケージ管理Python 2Python Tips
Python でインストール済みのライブラリをまとめてアンインストールする方法をご紹介します。
大きな流れは次のとおりです。
インストール済みのライブラリをリストアップ
リストを編集
pip…
Pythonで行列演算をする方法をご紹介します。
Pythonで行列を扱うには「 numpy 」というライブラリを使う方法が一般的です。
基本的な使い方を以下、見ていきます。
行列オブジェクト…
Pythonの「 inspect 」というライブラリをご紹介します。
import inspect
inspect は、名前のとおり「インスペクト」ーーコードの調査を行うためのライブラリです。…
Pythonでオブジェクトのメソッドを調べる方法をご紹介します。
大きく2つの方法があるかと思います。
組み込みの関数で調べる
inspect ライブラリの関数で調べる
順に見ていきます。…
Pythonで、リストの要素を指定した数でグルーピングして返す方法をご紹介します。
最もシンプルなやり方は range でステップを指定しながらループを回してスライスする方法かと思います。
#…
Python 2でPython 3の print 関数を使う方法をご紹介します。
future ライブラリから print_function をインポートすることで、Python 3のものと同…
Pythonの「 re 」というライブラリをご紹介します。
import re
re は正規表現を扱うためのライブラリです。 re = Regular Expression の略ですね。
re…
Python でクロージャを使う方法をご紹介します。
クロージャとは
一言でいうと、クロージャとは「関数内の変数の名前解決がその関数が 宣言されたときのスコープ で行われるもの」です。
もう少…
Python の内包表記についてまとめました。
内包表記とは?
内包表記とは、リストや辞書などの iterable オブジェク ト( for ループで回せるオブジェクト)のループ処理をかんたん・…
Python でベクトル演算を行う方法をご紹介します。
結論からいえば「 numpy 」というライブラリを使う方法が最も一般的かと思います。
以下、 numpy を使った基本的なベクトル演算の…
Python の doctest というライブラリをご紹介します。
import doctest
doctest は、名前に doc + test とあるとおり、ドキュメントによってテストを行…
Pythonの「 operator 」ライブラリをご紹介します。
operator ライブラリは、その名のとおり「演算子」のライブラリ。組み込みで用意されているさまざまな演算子を関数で実現した…
Pythonで「クラス間の継承関係をチェックする方法」をご紹介します。
クラスの継承関係をチェックするために使える関数として、次の2つの関数があります。
issubclass
mro
以下、順…
Pythonで、複数の区切り文字を使って文字列を分割する方法をご紹介します。
結論としては、 re.split を使うやり方がよろしいかと思います。
例として、次の文章を単語に分けてみます。
…
Python で、既存のオブジェクトにメソッドを追加する方法をご紹介します。
既存のオブジェクトにメソッドを追加する方法は 2 通りあります。
そのオブジェクトのクラスのインスタンスメソッド…
Pythonで、既存のクラスにインスタンスメソッドを追加する方法をご紹介します。
既存のクラスにメソッドを追加するには次の手順を踏みます。
まず関数を別途定義してから
その関数名をクラスのアト…
Pythonのサンプルコードをご紹介します。
サンプルコードシリーズを今後永く継続していければと思います。初回の今回はせっかくなので hello world を。
Pythonの Hello …
Python でライブラリ(モジュールやパッケージ)がどのディレクトリに入ってるのか、その場所を調べる方法についてご紹介します。
ライブラリの場所は、モジュールの __file__ アトリビュ…
「 IPython 」という Python のライブラリについてご紹介します。
…
collections の deque というクラスについてご紹介します。
from collections import deque
deque は、キュー・スタック的処理を効率的に行うため…
Pythonで、あるオブジェクトが特定のクラスのインスタンスかどうかをチェックする方法をご紹介します。
大きく分けて2つの方法があります。
type
isinstance
type
type …
Python で、自分で作ったクラスの演算子のふるまいを定義する方法をご紹介します。
Pythonでは特殊メソッド( special methods/magic methods )と呼 ばれるも…
Python 2.x で入力を取得する方法をご紹介します。
Python では、入力を取得する方法が大きく分けて 2 種類あります。
raw_input()
sys.stdin.readli…
Pythonで、リスト中の要素の数を数える方法をご紹介します。
いちばんかんたんなのは collections ライブラリの Counter クラスを使う方法です。
import collec…
Python の「 bisect 」というライブラリについてご紹介します。
import bisect
bisect ライブラリは名前のとおり bisection search ーーいわゆる「…
Python の peewee というライブラリについてご紹介します。
from peewee import *
peewee は Python でデータベースを扱いやすくする「 OR マッパ…
Pythonで、スクリプトの実行時間を計測する方法をご紹介します。
実行時間を計測するには、そのままずばり「 timeit 」という実行時間計測用のライブラリを使う方法がシンプル、かつかんたん…
Pythonでリストの中から要素をランダムで抽出する方法をご紹介します。
ランダムで抽出する、というとき、抽出方法は2つあるかと思います。
1つだけ抽出する
複数抽出する
以下、それぞれに…
Pythonで、実行中のスクリプトの名前を取得する方法をご紹介します。
と構えるまでもなくやり方はかんたんで、組み込みの変数 file を使います。
print __file__
# => 実…
Python で 2 つのリストの要素同士の演算を行う方法をご紹介します。
要素同士の演算には次の 2 つがあるかと思います。
i 番目の要素同士をかけあわせる
すべての要素の組み合わせをか…
Pythonで、辞書型のオブジェクトのキーとバリューを入れ替える方法についてご紹介します。
最もかんたんなやり方は、辞書内包表記を使う方法です。
mydict = {"a": "amembo"…
Python でリストから辞書を作成する方法についてご紹介します。
要素数 2 のタプルからなるリストの場合
まずは元のリストが要素数 2 のタプルからできている場合です。この場合はそのまま …
PythonのJUnit系のテストライブラリ unittest についてご紹介します。
使い方
まずは最もベーシックな使い方から。
最小の流れは次のようなものになります。
unittest ラ…
パッケージ管理Python 2Python Tips
Pythonのライブラリをまとめてインストールする方法をご紹介します。
pip がインストールされていれば、 pip install の -r オプションで一括インストールが可能です。
$ p…
Pythonで特定のオブジェクトのアトリビュートを確認する方法についてご紹介します。
オブジェクトのアトリビュートの一覧を取得するには dir() 関数を使います。
s1 = "hello"
…
Python には staticmethod と classmethod というよく似たふたつのデコレータが存在します。一見わかりづらいこれらのちがいについて今回は見ていきます。
結論からざっ…
Python のコマンドラインツールである virtualenvwrapper についてご紹介します。
virtualenvwrapper はその名前のとおり virtualenv の wra…
その 1 、その 2 に引き続き Python のスコープについて見ていきます。
みっつめのポイントは「スコープ内で使われる名前はスコープの先頭で作られる」というものです。
スコープ内で使われ…
その 1 につづいて、 Python のスコープのルールについて見ていきたいと思います。
ふたつめのポイントは「参照の順番は「 LEGB 」」というものです。
2. 参照の順番は「 LEGB …
何回かに分けて、 Python のスコープのルールについて見ていきたいと思います。
Python の変数がどの範囲でアクセスできるかという「スコープ」に関するルールは、まとめると次の 3 ポイ…
Pythonで多重リストをフラットにする(平滑化する)方法をご紹介します。
多重リストの階層が必ず2階層と決まっている場合には、リスト内包表記で次のように書くことができます。
a = [[1,…
Python でスーパークラスのインスタンスメソッドを呼び出すときに使える super() 関数の使い方をご紹介します。
Python 3 の場合
まずは例を見てください。
class Dog…
Pythonで文字列を評価する方法をご紹介します。
Pythonコードとして文字列を評価(eval)する方法としては大きく「eval」と「exec」の2つがあります。
ざっくり区別すると
e…
Python で特定のディレクトリをライブラリ読み込み対象パスに追加する方法をご紹介します。
Python でライブラリを読み込むディレクトリは sys.path の中にリストアップされていま…
Python でイテレータを生成する関数の使い方についてご紹介します。
このイテレータを生成する関数のことを Python では「ジェネレータ」と呼んだりします。
具体的には、通常関数が戻り値…