Преобразуйте элементы списка в последовательный кортеж, используя python

1

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].

Теги:
arrays
list
slice

2 ответа

2

Используйте 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]:]
  • 0
    Последний индекс, [65:] , вероятно, также должен быть добавлен.
  • 1
    Вам не нужно нарезать последний элемент, zip остановится после кратчайшего списка
0

После некоторой настройки и поиска я нашел ответ:

res = [bigger_list[i: a[ind+1]] for ind,i in enumerate(a[:-1])]

что также дает мне slicing of bigger_list.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню