Python シーケンスまとめ①
シーケンスとは?
データの集合を扱う際に要素に番号を振って順番に並べるような構造のこと をpythonではシーケンスと呼ぶ. その例として, 「リスト」「タプル」「文字列(string)」があげられる.
シーケンスの初期化
空リストは [ ] で表し, n個の要素数を確保したければ [0]*n とすると0がn個入ったリストが得られる. この場合要素は0だが, 具体的な値の入っていないリストを作るには None を用いる. 例えば, [None]*nとすると0がn個入ったリストが得られる.
リスト
要素の削除
リストから要素を削除するにはdel文を用いる.
$ friends = ['John', 'Mary', 'Hiroshi', 'Brown']
$ del friends[2] #「Hiroshi」を削除
$ friends
>> ['John', 'Mary', 'Brown']
要素の追加
リストの最後にオブジェクトを追加するにはappendメソッドを用いる.
$ list = [1, 2, 3]
$ list.append(4)
$ list
>> [1, 2, 3, 4]
リストのクリア
リストの内容をすべて消去するにはclearメソッドを用いる.
$ list = [1, 2, 3]
$ list.clear()
$ list
>> []
リストの複製
リストを複製するにはcopyメソッドを用いる.
通常の代入は, 同じリストにエイリアス(別名)をつける(バインドする)だけであることに注意.
$ list_a = [1, 2, 3]
$ list_b = list_a.copy()
$ list_b[1] = 0
$ list_a, list_b
>> ([1, 2, 3], [1, 0, 3])
要素の出現回数
ある要素がリスト内に何回出現するか数えるにはcountを用いる.
$ ['A', 'B', 'C', 'A', 'D', 'E', 'A'].count('A')
>> 3
$ list = [1, 2, 3, 4, 1, 5]
$ list.count(1)
>> 2
リストの延長
元のリストの末尾に別のリストを追加するにはextendを用いる.
追加したい複数の値をシーケンスにして与えることで, 要素を一度に追加できる.
$ x = [1, 2, 3]
$ y = [4, 5, 6]
$ x.extend(y)
$ x
>> [1, 2, 3, 4, 5, 6]
要素のインデックスの取得
リスト内のある要素が最初に現れるインデックスを見つけるにはindexを用いる.
また, リスト内に存在しない要素を指定すると例外が発生する.
$ alphabet = ['A', 'B', 'C', 'D', 'E', 'F']
$ alphabet.index('C')
>> 2
$ alphabet[2]
>> 'C'
オブジェクトの挿入
リストにオブジェクトを挿入するにはinsertを用いる.
$ nums = [1, 3, 4, 5, 6, 7]
$ nums.insert(1, 'two')
$ nums
>> [1, 'two', 3, 4, 5, 6, 7]
要素のポップ
リストの要素をポップ(ある要素を削除し, 削除した値を返す)にはpopを用いる.
引数に要素を指定するが, デフォルトでは最後の要素が指定される.
$ a = [1, 2, 3]
$ a.pop()
>> 3
$ a
>> [1, 2]
$ a.pop(0)
>> 1
$ a
>> [2]
要素の削除
指定した値のうち最初に出現した要素を削除するにはremoveを用いる. また, 存在しない要素を指定するとエラーとなる.
$ words = ['good', 'bad', 'soso', 'nice']
$ words.remove('bad')
$ words
>> ['good', 'soso', 'nice']
要素を逆順にする
リストの要素を逆順にするにはreverseを用いる.
$ x = [1, 2, 3]
$ x.reverse()
$ x
>> [3, 2, 1]
また, イテレータを取得したい場合はreversedを用いる.
$ x = [1, 2, 3]
$ list(x.reversed())
>> [3, 2, 1]
ソート
リストの要素をソートするにはsortを用いる.
また, python2.3以降では安定ソートとして実装されている.
$ x = [2, 4, 5, 1, 3, 6]
$ x.sort()
$ x
>> [1, 2, 3, 4, 5, 6]
ソートの詳細指定
・正順ソート:reverse引数にFalseを指定する
・逆順ソート:reverse引数にTrueを指定する
・文字の長さでソートする:key引数にlen関数を指定する
・任意の方法でソートする:key引数に自作の比較関数を指定する
ソートについて詳しくは以下を参照
https://wiki.python.org/moin/HowTo/Sorting