2009年10月12日月曜日

文字列

# -*- coding: utf-8 -*-

# 文字列の生成
s = "abc"
s = 'abc'
s = """abc
def"""
s = '''abc
def'''

# 複数行にまたがる場合は \ (バックスラッシュ文字) を使う
# 改行は文字列の中に含まれない
s = "abc\
def"
s = ("abc"
"def")

# 接頭文字 (r, R, u, U, ur, UR, Ur, uR)
s = r"abc\ndef"  # raw文字列 (エスケープシーケンスもそのままの文字になる)
s = R"abc"
s = u"abc"  # Unicode文字列
s = U"abc"
s = ur"abc"  # Unicode & raw
s = UR"abc"
s = Ur"abc"
s = uR"abc"

# 文字列の結合 (文字列リテラルどうしなら + なしでも結合できる)
s = "abc" " def " + s + "abc" + " def"
s = "abc" * 3  # s = "abc" + "abc" + "abc" と同じ

# 文字列フォーマットの操作 (d, i, o, u, x, X, e, E, f, F, g, G, c, r, s, %)
# 結果は "abc, 123, 456.789000"
s = "%s, %d, %f" % ("abc", 123, 456.789)

# 変換フラグ文字 ("#", "0", "-", " ", "+")
# 結果は "'001', '1   ', ' 1,-1', '+1', '456.789'"
s = "'%03d', '%-4d', '% d:% d', '%+d', '%.3f'" %(1, 1, 1,-1, 1, 456.789)

# 指定した位置の文字を取得する
s = s[0]

# スライスする
s = "abcdefg0123456789"[0:10]
# s[i:j:k]: s の i 番目から j 番目まで、k 毎のスライス
s = "abcdefg"[0:7:2]  # "aceg" となる

# 文字列が存在するか調べる
b = "ac" in s
b = "ac" not in s

# 長さを取得する
i = len(s)

# 最大の要素を取得する
s = max("abcdefg")  # "g" が返される 

# 比較する
b = "abc" == "def"
i = cmp("abc", "def")

# 最小の文字を取得する
s = min("abcdefg")  # "a" が返される 

# for文で処理する
for c in s:
    print c

# 文字列型の継承
class A(str):
    pass

文字列メソッド
# 分割してリストで返す
ls = "ab cd ef".split()

# 大文字に変換した文字列を返す
s = "hello".upper()

# 小文字に変換した文字列を返す
s = "HELLO".lower()

# 前後の空白を除去した文字列を返す
s = " hello ".strip()

# 最初の文字を大文字に変換した文字列を返す
s = "hello".capitalize()

# 全てのタブ文字を空白で展開された文字列を返す
s = " hello".expandtabs(4)

# ユニコードに変換する
us = "hello".decode("utf-8")

# エンコードする
s = "hello".encode("shift-jis")

# シーケンスを結合する
s = " ".join(["hello", "world"])  # "hello world" となる

# 文字列が引数で終わっているか調べる
b = "img.jpg".endswith(".jpg")

# 引数で始まっているか調べる
b = "abcde".startswith("abc")

# 英数文字かか調べる
b = "hello123".isalnum()

# 英文字か調べる
b = "hello".isalpha()

# 数字か調べる
b = "123".isdigit()

# 小文字か調べる
b = "hello123".islower()

# 大文字か調べる
b = "HELLO123".isupper()

# 空白文字か調べる
b = "   ".isspace()

# 引数が出現する回数を返
i = "a12b12c12d12e".count("12")

# 引数の出現位置を取得する(存在しないなら -1)
i = "abcdefg".find("e")

# 置き換える
s = "a,b,c,d,e".replace(",", "1")

文字列の連結は
リストに文字列を追加し
文字列メソッドのjoinで文字列に変換する
ls = []

for i in range(100):
    ls.append(str(i))

s = "".join(ls)

詳細はドキュメントで

0 件のコメント:

コメントを投稿