Contents
配列(リスト)の使い方
プログラミングをする際に、複数のオブジェクトを格納したリストを用いることがある。
リストの中に複数のオブジェクトを入れて、並び替えたり、一部削除したり、取り出したりして利用する。
他のJavaやC++などの言語では、リスト(配列)に同じ型のものしか入れられなかったり、取り出す際に型を指定して変換をする必要などがあるが、pythonの場合、数値や文字列、他のオブジェクトなど自由にどのような型のものも入れることができる。
また、取り出す際にも、型を指定する必要はない。
また、リストの中にリストを格納する多次元リストなども簡単に実装することができる。
以下のように利用します。
Example
- list_aに数値1, 2, 3, 4を格納して表示
list_a = [1, 2, 3, 4]
print(list_a) # [1, 2, 3, 4]
print(list_a) # [1, 2, 3, 4]
- 0を指定するとlistの1番目の要素、1を表示(indexは0から始まる)
print(list_a[0]) # 1と表示
- 数値と文字列を両方を格納でき、[-2]とすると最後から2番目の要素を表示できる
list_a = [1, 2, "apple", 4] # 数値と文字列を両方を格納
print(list_a[-2]) # 最後から2番目のappleを表示
print(list_a[-2]) # 最後から2番目のappleを表示
- list_aに1, [0, 1, "apple"], 3, lemonを格納し、2番目のリストの3番目の要素、appleを表示
list_a = [1, [0, 1, "apple"], 3, "lemon"] # リストに数値、リスト、文字列を格納
print(list_a[1][2]) # appleと表示
print(list_a[1][2]) # appleと表示
- listの2番目の配列の3番目の要素をgrapeに変更
list_a[1][2] = 'grape'
配列(リスト)のスライス
リストの一部を取り出したい場合、list[0:3]などとすると便利
Example
- list_aの1番目の要素から2番目の要素までの[1,2]を表示
list_a = [1, 2, 3, 4, 5, 6]
print(list_a[0:2]) # 1番目から2番目の1, 2を表示
print(list_a[0:2]) # 1番目から2番目の1, 2を表示
- list_aの1番目の要素から5番目の要素まで1つ飛ばしでの[1,3]を表示
print(list_a[0:4:2]) # [1, 3]を表示
- list_aの最後から3番目の要素以降の[4,5,6]を表示
print(list_a[-3:]) # [4, 5, 6]を表示
- list_aの3番目まで[1, 2, 3]を格納したlist_bを新たに作成
list_b = list_a[:3] # list_bに[1,2,3]を格納
配列(リスト)への値の追加、削除(append,extend,insert,clear,remove,pop)
pythonのリストに値を追加する方法として
- append[値を一つ追加]
- extend[リストにリストを追加して拡張]
- insert[リストに位置を指定して値を追加]
- clear[リストを初期化]
- remove[指定した要素をリストから削除]
- pop[指定したインデックスの要素を取り出して削除]
Example
- 要素を追加(append)
list_a = [1,2,3]
list_a.append(4) # list_aに4が追加され[1,2,3,4]になる
list_a.append(4) # list_aに4が追加され[1,2,3,4]になる
- リストを拡張(extend)
list_a = [1,2,3,4]
list_a.extend([5, 6]) # list_aに配列[5, 6]を追加して拡張し、[1,2,3,4,5,6]になる
list_a.extend([5, 6]) # list_aに配列[5, 6]を追加して拡張し、[1,2,3,4,5,6]になる
- 要素を特定の位置に挿入(insert)
list_a = [1,2,3,4,5,6]
list_a.insert(2, 'apple') # list_aの2番目と3番目の間に"apple"を追加し、[1,2,'apple',3,4,5,6]になる
list_a.insert(2, 'apple') # list_aの2番目と3番目の間に"apple"を追加し、[1,2,'apple',3,4,5,6]になる
- 要素を全削除(clear)
list_a.clear() # list_aの要素が全て削除され、空のリスト[]になる
- 要素を削除(remove)
list_a = ['apple', 'orange', 'grape' ,'banana']
list_a.remove('apple') # list_aからappleが削除され、['orange','grape', 'banana]になる
list_a.remove('apple') # list_aからappleが削除され、['orange','grape', 'banana]になる
- 要素を取り出し、削除(pop)
fruit = list_a.pop(1) # list_aの2番目の要素を取り出して削除
print(fruit) # ['orange','banana']
print(fruit) # grapeが表示される
print(fruit) # ['orange','banana']
print(fruit) # grapeが表示される
配列(リスト)を並べ替える(sort,reverse)
リストを並べ替えるにはsortを利用する。
例えば、[1,5,3,4,2]のようにバラバラに並んだリストに対し、list.sort()とすると[1,2,3,4,5]のように順番通りになる。
sort()は同じ型同士でないとエラーになるため、数値だけ文字列だけの配列に対して利用しましょう。
また、順番を逆にするには、reverseを利用する。
reverse()は別の型を含んだ配列や多次元配列にも利用できる。
Example
- 昇順に並び替える
list_a = ['orange','apple','grape','lemon']
list_a.sort() # 昇順に並び替えられ、['apple', 'grape', 'lemon', 'orange']になる
list_a.sort() # 昇順に並び替えられ、['apple', 'grape', 'lemon', 'orange']になる
- 逆順に並び替える
list_a = ['apple', 'grape', 'lemon', 'orange']
list_a.reverse() # ['orange', 'lemon', 'grape', 'apple']になる
list_a.reverse() # ['orange', 'lemon', 'grape', 'apple']になる
- リストの中のリストを逆順に並び替える
list_b = [1,2,[3,4,5]]
list_b[2].reverse() # [1,2,[5,4,3]]になる
list_b[2].reverse() # [1,2,[5,4,3]]になる
配列(リスト)その他のメソッド(count,index,copy)
リストには他にも重要なメソッドがある。
- count(指定した値がリストに含まれる数を返す)
- index(指定した値のインデックスを返す)
- copy(リストをそのままコピーして新たなリストを作成し、返す)
Example
- 要素数をカウントする(count)
list_a = ['orange','apple','grape','lemon']
print(list_a.count('orange')) # list_aにはorangeが1つあるため1が表示される
print(list_a.count('orange')) # list_aにはorangeが1つあるため1が表示される
- 要素のインデックスを調べる(index)
list_a = ['orange','apple','grape','lemon']
print(list_a.index('lemon')) # list_aにあるlemonのインデックス(3)が返される
print(list_a.index('banana')) # list_aにはbananaは含まれないためValueError
print(list_a.index('lemon')) # list_aにあるlemonのインデックス(3)が返される
print(list_a.index('banana')) # list_aにはbananaは含まれないためValueError
- copyでリストのコピーの作成
list_a = ['orange','apple','grape','lemon']
list_c = list_a.copy() # copy()で、list_cを作成すると新たなオブジェクトとしてlist_cが作成される
list_c[1] = 'pine' # list_cの2番目の要素を書き換えても、list_aの2番目の要素は変わらない
print(list_a) # ['orange', 'banana', 'grape', 'lemon']が表示されます
list_c = list_a.copy() # copy()で、list_cを作成すると新たなオブジェクトとしてlist_cが作成される
list_c[1] = 'pine' # list_cの2番目の要素を書き換えても、list_aの2番目の要素は変わらない
print(list_a) # ['orange', 'banana', 'grape', 'lemon']が表示されます
Python講座Pythonについてもっと知りたい!というかたはこちら、Pythonの基本文法から標準ライブラリ、応用ライブラリまで収録!!
【2020年版】: Python 3.8 データ構造、文法、アルゴリズム、オブジェクト指向、ライブラリ、完全マスター講座
【2020年版】: Python 3.8 データ構造、文法、アルゴリズム、オブジェクト指向、ライブラリ、完全マスター講座