Вы можете сделать это, используя следующие два метода.
Method-1 :
Использует list.insert для размещения некоторых разделителей ('|'
), а затем разделяет строку, используя эти разделители.
Метод-2 :
Используется понимание списка.
import numpy as np
# Line
line = 'AAABBCCCCDDDDDE'
# Array structure
slice_structure = [3,2,4,5,1]
ss = np.array(slice_structure).cumsum()
# Method-1
# >> Uses list.insert to place some separators ('|')
# and then split the string using these separators.
l = list(line)
for p in np.flip(ss[:-1]):
l.insert(p,'|')
final_1 = ''.join(l).split('|')
print('Method-1: {}'.format(final_1))
# Method-2
# >> Uses list comprehension
stop_pos = ss.tolist()
start_pos = [0] + ss[:-1].tolist()
final_2 = [line[start:stop] for start, stop in zip(start_pos, stop_pos)]
print('Method-2: {}'.format(final_2))
Вывод :
Method-1: ['AAA', 'BB', 'CCCC', 'DDDDD', 'E']
Method-2: ['AAA', 'BB', 'CCCC', 'DDDDD', 'E']