リストの使い方

リストの準備

リストとは、複数のデータをひとつにまとめて管理するデータ型のことである。
使用するには、事前に空のリスト(何も入っていないリスト)を準備する必要がある。

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))