リストの使い方
目次
リストの準備
リストとは、複数のデータをひとつにまとめて管理するデータ型のことである。
使用するには、事前に空のリスト(何も入っていないリスト)を準備する必要がある。
sample = []
- 初期値を持たせる場合(例)
sample = [100, 200, 300]
リスト内の任意の要素(値)を取得
位置(インデックス)を指定して中身を取得する。
後ろから位置を指定する場合はマイナスを使用する。
一番最後の要素が -1 となる。
def study_get_list_element():
sample = ["a", "b", "c", "d", "e"]
print('sample[0] =', sample[0])
print('sample[1] =', sample[1])
print('sample[2] =', sample[2])
print('sample[3] =', sample[3])
print('sample[4] =', sample[4])
print('sample[-1] =', sample[-1])
print('sample[-2] =', sample[-2])
print('sample[-3] =', sample[-3])
print('sample[-4] =', sample[-4])
print('sample[-5] =', sample[-5])
リスト内を空にする
使用する場面はあまりないが、clear()で、すべての要素を削除できる。
def study_list_clear():
sample = ["a", "b", "c", "d", "e"]
print("sample =", sample)
sample.clear()
print("sample.clear() =", sample)
実行結果
sample = ['a', 'b', 'c', 'd', 'e']
sample.clear() = []
要素の追加
append()
リストの最後(末尾)に要素を追加する。
for 文と組み合わせてよく使用する。
def study_list_append():
import random
random_number_list = []
print("random_number_list =", random_number_list)
for n in range(5):
# NOTE: Create a list with 5 random numbers(0~99).
generat = random.randint(0, 99)
random_number_list.append(generat)
print("random_number_list =", random_number_list)
実行結果
random_number_list = []
random_number_list = [25]
random_number_list = [25, 44]
random_number_list = [25, 44, 87]
random_number_list = [25, 44, 87, 72]
random_number_list = [25, 44, 87, 72, 22]
insert()
リストの任意の位置に要素を追加する。
第1引数に位置、第2引数に挿入する要素を指定する。
def study_list_insert():
sample = [100, 200, 300]
print("sample =", sample)
sample.insert(0, 50)
print("sample.insert(0, 50) >>", sample)
実行結果
sample = [100, 200, 300]
sample.insert(0, 50) >> [50, 100, 200, 300]
リストの要素数を取得
組み込み関数 len() の引数にリストを渡せば OK。
これも for 文と組み合わせてよく使用する。
def study_list_length():
sample = [100, 200, 300]
print("sample =", sample)
list_length = len(sample)
print("list_length:", list_length, type(list_length))
実行結果
sample = [100, 200, 300]
list_length: 3 <class 'int'>
リスト内の最大値、最小値を取得
組み込み関数 max()、min() の引数にリストを渡せば OK。
def study_list_max_min():
sample = [100, 200, 300]
print("sample =", sample)
list_max = max(sample)
list_min = min(sample)
print("list_max:", list_max)
print("list_min:", list_min)
実行結果
sample = [100, 200, 300]
list_max: 300
list_min: 100
リスト内の最大値、最小値のインデックス(位置)を取得
便利な関数
次に示す関数であれば、リスト内の値が重複する場合も対応できて便利である。
def get_index_multi(set_list: list, value):
return [i for i, temp in enumerate(set_list) if temp == value]
使用方法
def study_get_index_multi():
sample = [10, 20, 30, 5, 10, 15, 20, 25, 30, 5]
print("sample =", sample)
max_val_index = get_index_multi(sample, max(sample))
min_val_index = get_index_multi(sample, min(sample))
print('max value index:', max_val_index)
print('min value index:', min_val_index)
実行結果
sample = [10, 20, 30, 5, 10, 15, 20, 25, 30, 5]
max value index: [2, 8]
min value index: [3, 9]
リスト内に特定の要素が存在するかを確認
x in y のように記述する。
x が y に含まれていると True、含まれていないと False を返す。
def study_list_x_in_y():
sample = [100, 200, 300]
print("sample =", sample)
print('200 in sample:', 200 in sample)
print('500 in sample:', 500 in sample)
結果
sample = [100, 200, 300]
200 in sample: True
500 in sample: False
リスト内のユニークな要素の抽出(重複の削除)
set 型は、重複した要素を持たないデータ型である。
set()にリストを渡すことで、リスト内のユニークな要素の一覧を取得できる。
リストの中身は文字列でも構わない。
def study_list_pickup_unique():
sample = [1, 1, 2, 2, 2, 3, 4, 4, 5, 5, 5, 6, 6, 7]
print("sample =", sample)
# NOTE: to set.
sample_unique = set(sample)
print("sample_unique:", sample_unique, type(sample_unique))
# NOTE: to list.
sample_unique = list(set(sample))
print("sample_unique:", sample_unique, type(sample_unique))
実行結果
sample = [1, 1, 2, 2, 2, 3, 4, 4, 5, 5, 5, 6, 6, 7]
sample_unique: {1, 2, 3, 4, 5, 6, 7} <class 'set'>
sample_unique: [1, 2, 3, 4, 5, 6, 7] <class 'list'>
補足説明
このサンプルコードでは、"sample" をset()に渡してユニークな要素を抽出している。
受け取る結果がセット型でよい場合は、
sample_unique = set(sample)
リスト型がよい場合は、次のように記述する。
sample_unique = list(set(sample))