2013/04/11

ライブラリ:string

Python の「 string 」というライブラリについてご紹介します。

import string

string 」には、文字列に関係した変数やクラスが含まれています。主な内容は次の 2 つです。

  • 特定のグループの文字列をまとめた変数
  • 文字列をフォーマットするクラス

以下、そのそれぞれについて順番に見ていきます。

特定のグループの文字列をまとめた変数

アルファベットなどの文字グループをまとめた変数がいくつか用意されています。ある変数がアルファベットかどうかをチェックしたりするときに使えます。

string.ascii_lowercase
# => 'abcdefghijklmnopqrstuvwxyz'
ascii_lowercase には、アルファベットの小文字すべてが入っています。先頭に「 ascii 」がつかない「 lowercase 」というものもありますが、こちらはロケーション(言語環境?)によって異なる場合があるそうです。「 ascii_lowercase 」の方はロケーションに依存しない不変のものです。

string.ascii_uppercase
# => 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
ascii_uppercase はアルファベットの大文字を含んでいます。こちらも先頭に「 ascii 」のつかない「 uppercase 」があり、両者のちがいは lowercase と同様です。

string.digits
# => '0123456789'
string.digits には、 0 から 9 までの数字に対応する文字が入っています。

string.punctuation
punctuation は、文字と文字の間の句読点、括弧などをまとめたものです。私の環境では「 `!&guot;#$%&'()*+,-./:;<=>?@[\]^_`{|}~` 」が入っていました。

string.whitespace
whitespace は、空白や改行関連の文字をまとめたものです。私の環境では「 \t\n\x0b\x0c\r 」が入っていました。

文字列をフォーマットするクラス

文字列をフォーマットするクラスとして string.Formatter というものが用意されています。これは str.format() と似た使い方ができる独自の文字列フォーマッターを作る際に継承してできるクラスのようです。次のような使い方ができます。

import string

formatter = string.Formatter()
f.format('{0}は口に{1}', '良薬', '苦し')  
# => '良薬は口に苦し'

その他には、文字列を大文字にしたり小文字にしたり、小技をこなす関数がたくさん用意されています。
string.capitalize(文字列)  # 各単語の先頭を大文字にする
tring.lower(文字列)  # すべて小文字にする
string.upper(文字列)  # すべて大文字にする
string.join(リスト, セパレータ)  # リストを join する
string.strip(文字列)  # 先頭と末尾の空白を削除する
string.replace(文字列, 変更したい文字, 変更後の文字)  # 置換する

ただ、これらについては str のメソッドとして同じ名前のものが用意されているため、この用途でわざわざ string ライブラリを読み込んで使う機会は多くないかと思います。

・・・以上です。


インストール


string 」は標準ライブラリに含まれているので、別途インストールする必要はありません。


参考

0 件のコメント: