【Python】 List内のデータを分ける

■List内のデータを分ける

List内のデータを分ける方法はいくつか存在する。
今回は以下2つの方法で要素を分ける。
①for文を使用して、奇数・偶数番目の要素を別々に格納する。
②コロン「:」を使用して任意の数以下または以上表示させる。

▼for文を使用した分割

配列の要素数分、ループ処理を実施し、奇数・偶数番目の要素をそれぞれ別の配列へと格納する。

・サンプルコード

# -*- Coding: UTF-8 -*-

# リスト内の要素を奇数・偶数のインデックスで分割する関数
def ListSeparate(list_data: list):

    # 奇数(odd)と偶数(even)配列をそれぞれ作成
    list_odd = []
    list_even = []

    # リストの要素数分ループ処理
    for i in range(len(list_data)):
        # インデックスが奇数の場合はlist_oddへ
        if i % 2 == 1:
            list_odd.append(list_data[i])
        # インデックスが偶数の場合はlist_evenへ
        elif i % 2 == 0:
            list_even.append(list_data[i])

    print('インデックス奇数:', list_odd)
    print('インデックス偶数:', list_even)


# メイン処理
if __name__ == '__main__':
    # テストデータをセット
    input_data = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    # 関数呼び出し
    ListSeparate(input_data)

・実行結果

インデックス奇数: [1, 3, 5, 7, 9]
インデックス偶数: [0, 2, 4, 6, 8]

▼コロン「:」を使用した分割

コロン「:」を使用してリスト内のデータ分割するには、表示させる番号の前後にコロン「:」をつける。

・サンプルコード

# -*- Coding: UTF-8 -*-

import random

# リスト内の要素を任意のインデックスで分割する関数
def ListSeparate(list_data: list, separate_num: int):
    print('分ける位置:' + str(separate_num) + '番目')
    print(list_data[:separate_num])
    print(list_data[separate_num:])

# メイン処理
if __name__ == '__main__':
    # テストデータをセット
    input_data = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    # 任意の数(0からリストの要素数分までの整数)
    num = random.randint(0, len(input_data))
    # 関数呼び出し
    ListSeparate(input_data, num)

・実行結果(複数回実施)

分ける位置:9番目
[0, 1, 2, 3, 4, 5, 6, 7, 8]
[9]

分ける位置:1番目
[0]
[1, 2, 3, 4, 5, 6, 7, 8, 9]

分ける位置:5番目
[0, 1, 2, 3, 4]
[5, 6, 7, 8, 9]

分ける位置:10番目
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[]

分ける位置:5番目
[0, 1, 2, 3, 4]
[5, 6, 7, 8, 9]

分ける位置:7番目
[0, 1, 2, 3, 4, 5, 6]
[7, 8, 9]

コメント

タイトルとURLをコピーしました