文字列
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