アットウィキロゴ

文字列


Pythonの文字列は、変更不可能(Immutable)です。
この章では、組み込みの文字列メソッドを使用します。
注:2.5準拠です。
リファレンス

文字列を作成する


>>> s = "Hello"
>>> s
'Hello'

文字列を結合する


>>> s = "Hello"
>>> s1 = s + " World"
>>> s1
'Hello World'

繰り返し文字列を生成する


>>> s = "Yah"
>>> s1 = s * 3
>>> s1
'YahYahYah'

全部大文字(小文字)に揃える


大文字にするにはupper(),小文字にするならlower()メソッドを使用します。
>>> s = "mOnTY pytHON"
>>> s1 = s.upper()
>>> s1
'MONTY PYTHON'
>>> s2 = s.lower()
>>> s2
'monty python'
>>> s
'mOnTY pytHON'

unicode文字列の場合、全角文字のA,aも互いに変換されます。(ひらがな、漢字、カタカナは対象外)

大文字と小文字を入れ替える


swapcase()メソッド
>>> s = "mOnTY pytHON"
>>> s1 = s.swapcase()
>>> s1
'MoNty PYThon'

unicode文字列の場合、全角文字のA,aも互いに変換されます。(ひらがな、漢字、カタカナは対象外)

最初だけ大文字にする


文字列全部を見て最初だけ大文字にする場合はcapitalize(),区切りごとに大文字にする場合はtitle()を使用する。
>>> s = "mOnTY pytHON"
>>> s1 = s.capitalize()
>>> s1
'Monty python'
>>> s = "mOnTY pytHON"
>>> s1 = s.title()
>>> s1
'Monty Python'

Unicode文字列の場合、同上

文字列を判定する


isspace() 空白文字
isdigit() 数字
isalpha() 英字
isalnum() 英数字
islower() 小文字
isupper() 大文字
istitle() タイトルケース文字列

Unicode文字列の漢字・ひらがな・カタカナは英字かつnot大文字かつnot小文字として判定される。使用時注意

複数行の文字列を作成する


文字列中に\r\n(OS依存)を使うか、トリプルクォーテーションを使用する
>>> s = """Hello
... and
... How are you ?"""
>>> s1 = "I'm fine.\nThankyou"
>>> s
'Hello\nand\nHow are you ?'
>>> print s
Hello
and
How are you ?
>>> print s1
I'm fine.
Thank you. 

文字列の一部を取り出す


x文字目(からy文字)を取り出す

スライス[x(:y)]を使用する
>>> s = "monty python"
>>> s[1]
'o'
>>> s[2:5]
'nty'
>>> s[0:8:2]
'mnyp'   #0~8まで一文字おき..文字列では使わないと思うが。

空白や特定の文字列を除去する

strip(char),lstrip(char),rstlip(char)を使用する。charが空白なら空白を除去。
lstripは先頭から、rstripは最後から、stripは両側から対象外が出るまで除去。
>>> '   spacious   '.strip()
'spacious'
>>> 'www.example.com'.strip('cmowz.')
'example'

空白や特定の文字列を除去・置換する

replace( old, new[, count]) を使用する。old⇒newにcount個まで変換する。
>>> s = "monty python"
>>> s.replace("o","www")
'mwwwnty pythwwwn'

文字列を一文字ずつ処理する

文字列をリストとして処理する。
>>> str = u"あいうえお"
>>> for s in str:
print s
あ
い
う
え
お

複数行文字列を一行ずつ処理する

複数行の文字列=>行のリストにしてfor文で処理する。
splitlines([keepends]) を使用する。
>>> s = """Hello
... and
... How are you ?"""
>>> for line in s.splitlines():
	line	
'Hello'
' ... and'
' ... How are you ?'

文字列を左寄せ・中央・右寄せ・0埋めする。

ljust(width[,fillchar]),rjust(width[,fillchar]),center(width[,fillchar]),zfill(width)を使用する
>>> "python".ljust(8)
'python  '
>>> "python".rjust(8)
'  python'
>>> "python".center(8)
' python '
>>> "123456".zfill(8)
'00123456'
最終更新:2009年03月22日 01:58