Java.use(better, Python)《3》文字列とリスト(3)
|記事一覧|《こちらに移動中です》2006年7月12日 (水)
Java.use(better, Python) # Jython はじめました
《3》文字列とリスト(3)《Jython2.5.0》
組み込み関数
文字列やリストには、便利な組み込み関数が提供されています。
print dir("") # -------------------------------- Output -- ['__add__', '__class__', '__contains__', '__delattr__', '__doc__', '__eq__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__getslice__', '__gt__', '__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', 'isdigit', 'islower', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'replace', 'rfind', 'rindex', 'rjust', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']
組み込み関数 dir を使うと、適用可能な属性の一覧が得られます。空文字列 "" を引数にすると、文字列に何を適用できるかが分かります。
print dir([]) # -------------------------------- Output -- ['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__delslice__', '__doc__', '__eq__', '__ge__', '__getattribute__', '__getitem__', '__getslice__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__setattr__', '__setitem__', '__setslice__', '__str__', 'append', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
組み込み関数 dir を使うと、適用可能な属性の一覧が得られます。空リスト [] を引数にすると、リストに何を適用できるかが分かります。
list = "a,b,c".split(",") print list # -------------------------------- Output -- ['a', 'b', 'c']
組み込み関数 split を使うと、引数に指定した文字列で分割した、部分文字列を要素とするリストが得られます。出力結果を見ると、"," の位置で分割した部分文字列が、リストの各要素となるのが分かります。
for e in list: print e, print # -------------------------------- Output -- a b c
for 文では、変数 e にリスト list の要素が順に代入されます。出力結果を見ると、リスト内の要素を空白で区切りながら、順に出力しているのが分かります。
for i in range(len(list)): print 'list[%i] %s' % (i, list[i]) # -------------------------------- Output -- list[0] a list[1] b list[2] c
for 文では、変数 i に 0 からリストの長さ-1 までの数が順に代入されます。出力結果を見ると、リスト内の要素を改行しながら、順に出力しているのが分かります。
str = ",".join("123456789") print str # -------------------------------- Output -- 1,2,3,4,5,6,7,8,9
組み込み関数 join を使うと、引数に指定した文字列を構成する各要素に対して、対象となる文字列で接合した新たな文字列が得られます。出力結果を見ると、各要素を "," で接合した文字列となるのが分かります。
list = str.split(",") print list # -------------------------------- Output -- ['1', '2', '3', '4', '5', '6', '7', '8', '9']
接合した文字列 str を、split で分割すると、1 から 9 までの数に相当する文字列を要素とするリスト list が得られます。
sum = 0 for e in list: sum += int(e) print "sum: %s" % sum # -------------------------------- Output -- sum: 45
リスト list 内の要素を数と見なして合計した値を求めます。変数 sum には、初期値として 0 を代入します。for 文では、変数 e にリスト list の要素が順に代入されます。組み込み関数 int を使うと、引数に指定した文字列を整数に変換した値が得られます。出力結果を見ると、1 から 9 までの数の合計が 45 となるのが分かります。
values = [] for e in list: values.append(int(e)) print values # -------------------------------- Output -- [1, 2, 3, 4, 5, 6, 7, 8, 9]
1 から 9 までの数を要素とするリストを生成します。for 文では、変数 e にリスト list の要素が順に代入されます。組み込み関数 append を使うと、引数に指定した要素をリストの末尾に追加します。出力結果を見ると、リスト values 内の各要素が、文字列ではなく、整数となるのが分かります。
sum = 0 for e in values: sum += e print "sum: %s" % sum # -------------------------------- Output -- sum: 45
リスト values 内の要素を合計した値を求めます。変数 sum には、初期値として 0 を代入します。for 文では、変数 e にリスト values の要素が順に代入されます。出力結果を見ると、1 から 9 までの数の合計が 45 となるのが分かります。
list = [e for e in "ABCDE"] print list # -------------------------------- Output -- ['A', 'B', 'C', 'D', 'E']
リストの中で for を使うと、任意の要素を持つリストを簡単に生成できます。変数 e に文字列の各要素が順に代入されます。すると、各文字を要素とするリスト list が得られます。
list = [int(e) for e in "12345"] print list # -------------------------------- Output -- [1, 2, 3, 4, 5]
変数 e に文字列の各要素が順に代入されます。すると、各文字列を整数と見なしたものを要素とするリスト list が得られます。
list = ",".join("123456789").split(",") values = [int(e) for e in list] print values # -------------------------------- Output -- [1, 2, 3, 4, 5, 6, 7, 8, 9]
すると、append を使わなくても、1 から 9 までの数を要素とするリストを生成できます。
==================================
森こねこ 著 ◆ 監修:小泉ひよ子とタマゴ倶楽部