a = [0, 18, 27, 43, 52, 65]
это список индексов, из которых я хочу получить доступ к более крупному разрезу списка с помощью
[0:18],[18:27],[27:43],[43:52], [52:65], [65:]
Как это сделать?
Я пробовал, но я не получаю правильный формат
slicing = [index for index in (a[:-1])]
но это дает мне [0, 18, 27, 43, 52]
.
Используйте zip
:
a = [0, 18, 27, 43, 52, 65]
res = [bigger_list[x:y] for x, y in zip(a[:-1], a[1:])]
и, наконец, расширить его:
res.extend(bigger_list[a[-1]:])
Или сделать это в одной строке:
res = [bigger_list[x:y] for x, y in zip(a[:-1], a[1:])] + bigger_list[a[-1]:]
После некоторой настройки и поиска я нашел ответ:
res = [bigger_list[i: a[ind+1]] for ind,i in enumerate(a[:-1])]
что также дает мне slicing of bigger_list
.
[65:]
, вероятно, также должен быть добавлен.