Разбиение строки по условию Python

На вход поступает строка, которую нужно поделить на элементы и занести в массив, то есть строка делится при N S E W. Допустим, на вход есть 7N5E2S3E, то в массиве будет 7N 5E 2S 3E, или есть 10N30W20N, то 10N 30W 20N помогите решить


Ответы (3 шт):

Автор решения: Владислав Харламов
exp = '10N30W20N30S50W90E110N'
indexies = [0] + [index + 1 for index, char in enumerate(exp) if (char in 'NSWE')]
result = ' '.join([exp[l:r] for l, r in zip(indexies, indexies[1:])])
print(result) # 10N 30W 20N 30S 50W 90E 110N
→ Ссылка
Автор решения: Danis
x = '7N5E2S3E'
arr = ['']

for i in x:
    arr[-1] += i
    if i in 'NSEW':
        arr.append('')
if arr[-1] == '':
    arr.pop()
print(arr) 
→ Ссылка
Автор решения: Владислав Харламов
import re
exp = '10N30W20N30S50W90E110N'
print(' '.join(re.findall('\d+[NSWE]', exp))) # 10N 30W 20N 30S 50W 90E 110N
→ Ссылка