Группировать числа в списке по их индексам (python0

#python #python-3.x

#python #python-3.x

Вопрос:

У меня есть эта группа чисел:

 a=[1,2,3,4,5,6]
  

и я сгруппировал их индексы следующим образом:

 indices = [[0],[1,2],[3,4,5]]
  

Я хочу сгруппировать числа в списке ‘a’ так, как сгруппированы их индексы, чтобы получить что-то вроде этого:

 b= [[1],[2,3],[4,5,6]]
  

Спасибо за вашу помощь!

Ответ №1:

Это должно сработать:

 a = [1,2,3,4,5,6]
indices = [[0],[1,2],[3,4,5]]

result = [[a[index] for index in index_list] for index_list in indices]
  

Комментарии:

1. опереди меня на секунду, Джи Джи

Ответ №2:

Вы можете использовать функцию itemgetter() :

 from operator import itemgetter

a = [1,2,3,4,5,6]
indices = [[0],[1,2],[3,4,5]]

[list(itemgetter(*i)(a)) if len(i) > 1 else [itemgetter(*i)(a)]
                                              for i in indices]
#  [[1], [2, 3], [4, 5, 6]]