Как разделить список Python на другой список индексов

В Python вы можете разрезать список, используя другой список индексов. Вот несколько способов добиться этого:

  1. Построение списка:
    Вы можете использовать понимание списка для создания нового списка, содержащего нарезанные элементы, на основе предоставленных индексов. Вот пример:

    my_list = ['a', 'b', 'c', 'd', 'e', 'f']
    indices = [0, 2, 4]
    sliced_list = [my_list[i] for i in indices]
    print(sliced_list)

    Выход:

    ['a', 'c', 'e']
  2. Карта и Operation.itemgetter:
    Вы можете использовать функцию mapвместе с operator.itemgetterдля извлечения элементов на основе индексов. Вот пример:

    import operator
    
    my_list = ['a', 'b', 'c', 'd', 'e', 'f']
    indices = [0, 2, 4]
    sliced_list = list(map(operator.itemgetter(*indices), [my_list] * len(indices)))
    print(sliced_list)

    Выход:

    ['a', 'c', 'e']
  3. NumPy:
    Если у вас установлен NumPy, вы можете использовать функцию numpy.takeдля извлечения элементов из списка на основе индексов. Вот пример:

    import numpy as np
    
    my_list = ['a', 'b', 'c', 'd', 'e', 'f']
    indices = [0, 2, 4]
    sliced_list = np.take(my_list, indices)
    print(sliced_list)

    Выход:

    ['a', 'c', 'e']