2009年10月8日木曜日

文字列(実用編)

前回は、文字列の結合や部分文字列の抽出を行ったが、実際にプログラムを作成するとなると、もっと高機能な文字列操作が必要になる。今回は文字列オブジェクト固有の「便利」なメソッドを紹介する。

find: 特定の文字が最初に出現する位置を返す
>>> "abcde".find("a") ##1文字目は0に
0
>>> "abcde".find("c")
2
>>> "abcde".find("e")
4
>>> "abcde".find("f") ##見つからなければ-1に
-1

upper 大文字に
lower 小文字に
>>> "abcde".upper()
'ABCDE'
>>> "ABCDE".lower()
'abcde'

大文字にして小文字にしたら元通り。(メソッドチェーン)
>>> "abcde".upper().lower()
'abcde'

rstrip: 行末の空白文字の除去
>>> "ABCDE\n"
'ABCDE\n'
>>> "ABCDE\n".rstrip()
'ABCDE'
>>> "ABCDE\n\t".rstrip()
'ABCDE'
>>> "ABCDE ".rstrip()
'ABCDE'
ユーザ入力の処理や、CSVインポート時に、行末のゴミを取り除けます。

split: 文字列を分割しリスト化
>>> "a,b,c".split(",")
['a', 'b', 'c']

startswith: 特定の文字列で始まるか確認
>>> "hello".startswith("H")
False
>>> "hello".startswith("h")
True

文字列オブジェクトの属性は以下のとおり。
>>> dir("hoge")
['__add__', '__class__', '__contains__', '__delattr__', '__doc__', '__eq__', '__
ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__getslice__', '__g
t__', '__hash__', '__init__', '__le__', '__len__', '__lt__', '__mod__', '__mul__
', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '
__rmul__', '__setattr__', '__str__', 'capitalize', 'center', 'count', 'decode',
'encode', 'endswith', 'expandtabs', 'find', 'index', 'isalnum', 'isalpha', 'isdi
git', 'islower', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lst
rip', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit'
, 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', '
translate', 'upper', 'zfill']

文字列は非常によく使うオブジェクトです。__で囲まれているのは特殊な属性なので無視するとして、それ以外のメソッドは一通り機能を確認しておくとよいでしょう。

0 件のコメント:

コメントを投稿