Java.use(better, Python)《2》文字列とリスト(2)
|記事一覧|《こちらに移動中です》2006年7月11日 (火)
Java.use(better, Python) # Jython はじめました
《2》文字列とリスト(2)《Jython2.5.0》
リスト
リストは基本的な要素のひとつです。これを文字列と比較しながら、解説します。
l = range(5) print type(l) print len(l) print l # -------------------------------- Output --5 [0, 1, 2, 3, 4]
変数 l に range によって得られるリストを代入します。組み込み関数 type を使うと、その型が得られます。出力結果を見ると、文字列の型は list となるのが分かります。組み込み関数 len を使うと、リストの長さ(要素の数)が得られます。出力結果を見ると、その長さは 5 となるのが分かります。print 文を使うと、[ ] で囲まれた中に、リスト内の要素が空白で区切られて出力されます。
print l[0] print l[4] print type(l[0]) # -------------------------------- Output -- 0 4
添字を使うと、リストの各要素を参照できます。先頭の要素を参照するには、添字 0 を使います。末尾の要素を参照するには、リストの長さ-1である、添字 4 を使います。出力結果を見ると、先頭の文字が 0 で、末尾の文字が 4 となるのが分かります。さらに、リストの各要素の型は int となるのが分かります。
print l[5] # -------------------------------- Output -- IndexError: list index out of range
リストの長さを超えて参照しようとすると、例外 IndexError を生じます。
print l[0],l[2],l[4] # -------------------------------- Output -- 0 2 4
print 文の中で「, 」を使うと、そこに空白を挿入します。出力結果を見ると、整数 2 の前後に空白を挿入しているのが分かります。
print range(5)[1],range(5)[3] # -------------------------------- Output -- 1 3
リストは、変数を使わずに、式のままで参照できます。出力結果を見ると、1番目の要素が 1 で、3番目の要素が 3 となるのが分かります。
list = range(3,6) print list # -------------------------------- Output -- [3, 4, 5]
組み込み関数 range を使うと、指定された範囲内の数を要素とするリスト list が得られます。出力結果を見ると、3 から 5 までの整数を要素とするリストとなるのが分かります。
for i in range(3): print list[i], print # -------------------------------- Output -- 3 4 5
for 文では、変数 i に 0 から 2 までの数が順に代入されます。print 文を使って、リスト内の i 番目の要素 list[i] を出力します。出力結果を見ると、3 から 5 までの数を空白で区切りながら、順に出力しているのが分かります。
for i in range(5): print "list[0:%i] %s" % (i, list[0:i]) print # -------------------------------- Output -- list[0:0] [] list[0:1] [3] list[0:2] [3, 4] list[0:3] [3, 4, 5] list[0:4] [3, 4, 5]
部分リストを得るには、スライスを指定します。部分リストを切断する位置を「:」の前後に指定します。for 文では、変数 i に 0 から 5 までの数が順に代入されます。print 文を使って、式 list[0:i] によって、0 番目と i 番目で切断した部分リストを出力します。出力結果を見ると、末尾の切断する位置を 0 から 4 まで変化させながら、部分リストを順に出力しているのが分かります。末尾の位置を 0 で切断すると、要素をひとつも持たない空リストが得られます。末尾の位置がリストの長さを超えると、その値は無視されて、末尾の位置までで切断されます。
s = "ABC" for i in range(-3,3): print '"%s"[%i]: %s' % (s, i, s[i]) print # -------------------------------- Output -- "ABC"[-3]: A "ABC"[-2]: B "ABC"[-1]: C "ABC"[0]: A "ABC"[1]: B "ABC"[2]: C
リストに対する添字の指定は、そのまま文字列にも適用できます。負の数は、末尾からの相対位置(リストの長さ-位置)を表します。出力結果を見ると、-3 によって先頭の要素 A を、-1 によって末尾の要素 C を、出力しているのが分かります。
for i in range(5): print '"%s"[:%i] %s' % (s, i, s[:i]) print # -------------------------------- Output -- "ABC"[:0] "ABC"[:1] A "ABC"[:2] AB "ABC"[:3] ABC "ABC"[:4] ABC
先頭の位置を省略すると、0 が指定されたものと見なされます。出力結果を見ると、先頭から、末尾の位置 0〜4 までで切断した部分文字列を、順に出力しているのが分かります。
for i in range(5): print '"%s"[%i:] %s' % (s, i, s[i:]) print # -------------------------------- Output -- "ABC"[0:] ABC "ABC"[1:] BC "ABC"[2:] C "ABC"[3:] "ABC"[4:]
末尾の位置を省略すると、要素数が指定されたものと見なされます。出力結果を見ると、先頭の位置 0〜4 から、末尾までで切断した部分文字列を、順に出力しているのが分かります。
for i in range(5): print '"%s"[1:%i] %s' % (s, i, s[1:i]) print # -------------------------------- Output -- "ABC"[1:0] "ABC"[1:1] "ABC"[1:2] B "ABC"[1:3] BC "ABC"[1:4] BC
先頭の位置と末尾の位置を指定すると、その位置で切断された、部分文字列が得られます。
==================================
森こねこ 著 ◆ 監修:小泉ひよ子とタマゴ倶楽部