Pythonのリスト(配列)について
リストの作成
空リストの作成は"[]"になります。
a = []
初期要素があるリストは、初期要素をカンマ区切りで"[" と"]"で囲んで作成します。 例えば、整数1、7、4、2の4個のリストは以下のようになります。
a = [1, 7, 4, 2]
文字列と整数の、"first", "second", 333 のリストを定義する場合も同じようにできます。
a = ['first', 'second', 333]
range
整数の1から10までが入ったような単調増加の数列が入ったリストは、rangeで作成できます。
変数 = range(start, stop, step)リストの要素の最大値はstop未満になり、作成される要素の個数がNとすると以下のようになります。
stop > 最大値 = start + step x (N - 1)
0から9までの整数が入ったリストをrangeで作成する場合、以下のようになります。 増加数が1の場合は、省略できます。
a = range(0, 10, 1) b = range(0, 10)
[5, 10, 15]のリストをrangeで作成する場合、以下のようになります。
a = range(5, 20, 5) #>= [5, 10, 15]stopは、リストの最大値15にstepを追加した20(stepの倍数)が一般的に指定されます。
参考 stopに16以上20以下の整数16、17, 18, 19を指定しても同じ結果になりました。 処理系によらず、以下が正しく動作するかは不明です。
a = range(5, 16, 5) #>= [5, 10, 15]
サイズ取得(組み込み関数len)
リストのサイズ(要素数)を取得する場合、組み込み関数のlenを使います。
size = len([8, 1, 7, 8, 8]) #=> 5 print('size:', size)
結合(マージ)
リストとリストを結合(マージ)する場合、+演算子か、extendメソッドを使います。 +演算子だと結合結果を別の変数にすることができ、その場合、結合元の2つのリストを変更しません。
a = [1,2,3,4] b = [5,6,7,8] c = a + b #=> [1,2,3,4,5,6,7,8]
extendメソッドは、あるリストに他のリストを結合することになります。
a = [1,2,3,4] b = [5,6,7,8] a.extend(b) #=> [1,2,3,4,5,6,7,8]同じことを+演算子ですると、以下のようになります。
a = [1,2,3,4] b = [5,6,7,8] a += b #=> [1,2,3,4,5,6,7,8]
追加
末尾に追加(append)
リストの末尾に要素を追加する場合、appendメソッドを使います。
a = [] a.append(追加要素)
'aaa', 'bbb'のリストを作成して、'ccc'を追加する場合
words = ['aaa', 'bbb'] words.append('ccc') #=> ['aaa', 'bbb', 'ccc']
指定位置に追加(insert)
リストの指定位置に要素を追加する場合、insertメソッドを使います。 位置は、0が先頭になり、2個目の位置が1となります。 マイナス値の場合は、末尾からの位置になり、-1が末尾の1個前(末尾から2番目)になります。
a = [] a.insert(位置, 追加要素)
リストの先頭に追加する場合は、位置に0を指定します。
words = ['aaa', 'bbb'] words.insert(0, 'ccc') #=> ['ccc', 'aaa', 'bbb']
リストの先頭から3番目に追加する場合
words = ['ccc', 'aaa', 'bbb'] words.insert(2, 'ddd') #=> ['ccc', 'aaa', 'ddd', 'bbb']
リストの末尾から2個目に追加する場合
words = ['ccc', 'aaa', 'bbb'] words.insert(-1, 'ddd') #=> ['ccc', 'aaa', 'ddd', 'bbb']
削除
指定値を削除(remove)
指定値を削除したい場合、removeメソッドを使います。
a = [] a.remove(値)
a = ['aaa', 'bbb', 'ccc', 'ddd'] a.remove('bbb') #=> ['aaa', 'ccc', 'ddd']
指定した値が複数ある場合は、先頭に近いものから削除されます。
a = [4, 1, 8, 3, 8, 8] a.append('ccc') #=> [4, 1, 3, 8, 8]
指定位置を削除(pop)
リストの指定位置の要素を削除する場合、popメソッドを使います。 位置は、0が先頭になり、2個目の位置が1となります。 マイナス値の場合は、末尾からの位置になり、-1が末尾の1個前(末尾から2番目)になります。
変数.pop(位置)
先頭を削除する場合は、位置に0を指定します。
a = ['aaa', 'bbb', 'ccc', 'ddd'] b = a.pop(0) print('a:', a) print('b:', b)実行結果は、以下のようになります。
a: ['bbb', 'ccc', 'ddd'] b: aaa
先頭から3番目を削除する場合は、位置に2を指定します。
a = ['aaa', 'bbb', 'ccc', 'ddd'] b = a.pop(2) print('a:', a) print('b:', b)実行結果は、以下のようになります。
a: ['aaa', 'bbb', 'ddd'] b: ccc
末尾を削除する場合は、位置に-1を指定します。
a = ['aaa', 'bbb', 'ccc', 'ddd'] b = a.pop(-1) print('a:', a) print('b:', b)実行結果は、以下のようになります。
a: ['aaa', 'bbb', 'ccc'] b: ddd
末尾から3番目を削除する場合は、位置に-3を指定します。
a = ['aaa', 'bbb', 'ccc', 'ddd'] b = a.pop(-3) print('a:', a) print('b:', b)実行結果は、以下のようになります。
a: ['aaa', 'ccc', 'ddd'] b: bbb
要素の合計(組み込み関数sum)
リストの各要素を足した合計値を返します
print(sum([8, 1, 7, 8, 8])) #=> 32 print(sum([8, 1, -7, -8, -8])) #=> -14 print(sum([8, 1.2, 7, 8, 6.3])) #=> 30.5
指定要素
指定要素の数を取得(count)
指定要素の数を取得する場合、countメソッドを使用します。
print([8, 1, 7, 8, 8].count(8)) #=> 3 (8は3個存在) print([8, 1, 7, 8, 8].count(2)) #=> 0 (2は0個)
指定要素の位置を取得(index)
指定要素がリスト中に存在する場合、その位置(0から始まる整数)を返します。
print([4, 3, 7, 8, 11, 2].index(4)) #=> 0 (4は0番目にある) print([4, 3, 7, 8, 3, 2].index(3, 2)) #=> 4 (2番目の7からリストの最後までを調べると 4番目もし、存在しない要素を指定すると、エラーになります。
print([4, 3, 7, 8, 11, 2].index(20)) Traceback (most recent call last): File "list.py", line 22, in <module> print([4, 3, 7, 8, 11, 2].index(20)) ValueError: 20 is not in list
指定要素の存在を確認(in)
指定要素が存在するかどうかを調べる場合、in演算子を使用します。 指定要素 in リスト
c = range(5, 21, 5) #=> [5, 10, 15, 20] print(7 in c) #=> False print(5 in c) #=> True