Есть ли функция для разбора строки в конкретной интерпретации ее содержимого? - PullRequest
1 голос
/ 01 ноября 2019

Это моя строка: 'NE2SW15W2X8E'

Мой вывод:

[('N', 1),
('E', 2),
('S', 1),
('W', 15),
('W', 2),
('X', 8),
('E', 1)]

Результат на следующей основе:
1) N не имеет числа послеэто, поэтому возьмите 1 по умолчанию
2) E имеет номер после него, поэтому возьмите его вместо номера по умолчанию 1
3) Точно так же, W и X имеют цифры после него, поэтому использовали его вместо значения по умолчанию.

Заранее благодарим за помощь, она очень ценится.

1 Ответ

6 голосов
/ 01 ноября 2019

Найти все направления заглавные буквы, за которыми может следовать ноль или более цифр;если нет чисел, используйте 1.

[(d, int(n) if n else 1) for d, n in re.findall('([A-Z])(\d*)', 'NE2SW15W2X8E')]

РЕДАКТИРОВАТЬ: не видел X там

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...