Pythonを学ぶ 16 配列(リスト)
目次
データ構造
今までの変数では扱えるデータはひとつでした。
しかし、プログラムによっては同じようなデータはひとまとめにして管理したい場合が出てきます。
その場合に扱うデータの集まりを効率的に使う方法や形式をデータ構造といいます。
配列(リスト)を使う
データ構造のなかでも一番ポピュラーなものが今回の配列(リスト)です。
Pythonにおいては配列とリストは同じものですが、言語によっては違うものを指す場合も少ない無いので注意しましょう。
int_list = [0, 1, 2, 3]
print(int_list)
# [0, 1, 2, 3]と表示される
このような書き方で作ります。
要素(値)を取り出す場合には
int_list[2]
# 0からカウントするため、3番目の要素が取り出される
このように記述します。[]は添字といいます。
- 長さを取得したい場合も文字列と同じくlen()を使います。len(int_list)とすれば4が返ります。
- 長さを取得したい場合も文字列と同じくlen()を使います。len(int_list)とすれば4が返ります。
- とすれば4が返ります。
:コロンを使用したスライスも文字列と同様に使用できます。
int_list[0] = 1
このように定義済みの要素に再代入も可能です。
また、配列には任意の型で作ることができます。
menu = ['tea', 'coffee', 'cake']
# 文字列型の配列の例
要素の追加
作成済みの配列にさらに要素を追加したい場合にはappend()やextend()を使用します。
int_list.append(4)
print(int_list)
# 末尾に追加される
int_list.extend([5,6])
print(int_list)
# 複数の要素はextendを使う
int_list += [7,8]
print(int_list)
# +=演算子でも代用できる
書き方が違うので注意しましょう。
要素の削除
次に要素を削除する場合にはdelまたはremove()やclear()を使います。
del int_list[2]
print(int_list)
# 添字で指定した要素が取り除かれる
int_list.remove(6)
print(int.list)
# 引数と一致した最初の要素が取り除かれる
int_list.clear()
print(int_list)
# 全要素を削除
delのみメソッドではないので書き方が異なります。
要素の検索
配列の要素を検索するにはinやindex()を使います。
iroha = ['い', 'ろ', 'は', 'に', 'ほ', 'へ', 'と']
print('は' in iroha)
# 要素があるかないかをTrueまたはFalseで返します
print(iroha.index('ほ'))
# 引数の要素の場所を返します(0からのカウント)
inはnot inとすることで、含まれていないかどうか、という使い方もできます。
要素の並べ替え
要素を昇順や降順に並べ替える場合にはsort()やsorted関数を使います。
int_list2 = [3, 5, 1, 8, 4]
int_list2.sort()
print(int_list2)
# 昇順
int_list2.sort(reverse=True)
print(int_list2)
# 降順
print(sorted(int_list2))
# 昇順
print(sorted(int_list2, reverse=True))
# 降順
sort()とsortedの違いはsort()は配列そのものを並べ替えるメソッド、sortedは元の配列はそのままに並べ替えた結果を返すという違いがあります。
文字列の場合も同じような使い方でアルファベット順の並べ替えができます。