Разбиение строки по условию 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