Pythonでリストの一部を他のリストのインデックスでスライスする方法


  1. ループを使用してスライスを作成する方法:

    def slice_list_with_indices(lst, indices):
    sliced_list = []
    for i in indices:
        sliced_list.append(lst[i])
    return sliced_list
    # 使用例:
    my_list = [1, 2, 3, 4, 5, 6]
    my_indices = [1, 3, 5]
    sliced_list = slice_list_with_indices(my_list, my_indices)
    print(sliced_list)  # 出力: [2, 4, 6]
  2. リスト内包表記を使用する方法:

    my_list = [1, 2, 3, 4, 5, 6]
    my_indices = [1, 3, 5]
    sliced_list = [my_list[i] for i in my_indices]
    print(sliced_list)  # 出力: [2, 4, 6]
  3. operator.itemgetter()関数を使用する方法:

    from operator import itemgetter
    my_list = [1, 2, 3, 4, 5, 6]
    my_indices = [1, 3, 5]
    sliced_list = itemgetter(*my_indices)(my_list)
    print(list(sliced_list))  # 出力: [2, 4, 6]

これらの方法は、Pythonでリストの一部を他のリストのインデックスを使用してスライスするためのいくつかの一般的な方法です。選択した方法に基づいて、必要に応じてコードを調整してください。