Python: разделение списка на под-списки на основе диапазонов индексов

ОБНОВЛЕНО:

В python, как разбить список на под-списки на основе диапазонов индексов

например. первоначальный список:

list1 = [x,y,z,a,b,c,d,e,f,g]

с использованием диапазонов индексов 0 - 4:

list1a = [x,y,z,a,b]

с использованием диапазонов индексов 5-9:

list1b = [c,d,e,f,g]

спасибо!

Я уже знал (переменные) индексы элементов списка, которые содержат определенную строку и хотят разбить список на основе этих значений индекса.

Также необходимо разделить на переменное количество подписок! то есть:

list1a
list1b
.
.
list1[x]

Ответ 1

Обратите внимание, что вы можете использовать переменную в срезе:

l = ['a',' b',' c',' d',' e']
c_index = l.index("c")
l2 = l[:c_index]

Это положило бы первые две записи l в l2

Ответ 2

В питоне это называется нарезкой. Вот пример нотации фрагмента Python:

>>> list1 = ['a','b','c','d','e','f','g','h', 'i', 'j', 'k', 'l']
>>> print list1[:5]
['a', 'b', 'c', 'd', 'e']
>>> print list1[-7:]
['f', 'g', 'h', 'i', 'j', 'k', 'l']

Обратите внимание, как вы можете нарезать как положительно, так и отрицательно. Когда вы добавляете отрицательное число, это означает, что мы срезаем справа налево.

Ответ 3

Если вы уже знаете индексы:

list1 = ['x','y','z','a','b','c','d','e','f','g']
indices = [(0, 4), (5, 9)]
print [list1[s:e+1] for s,e in indices]

Обратите внимание, что мы добавляем +1 к концу, чтобы сделать диапазон включенным...

Ответ 4

list1a=list[:5]
list1b=list[5:]

Ответ 5

list1=['x','y','z','a','b','c','d','e','f','g']
find=raw_input("Enter string to be found")
l=list1.index(find)
list1a=[:l]
list1b=[l:]