Разделение строки с несколькими разделителями - PullRequest
1 голос
/ 07 февраля 2012

У меня есть строка, содержащая координаты шахматных фигур:

штук = [Ka4Qb3Td7b4c4]

Как мне разбить строку на список, разделенный числами?

Требуемый вывод: ['Ka4', 'Qb3', 'Td7', 'b4', 'c4']

Ответы [ 2 ]

3 голосов
/ 07 февраля 2012

Пахнет домашней работой, но достаточно легко ..

import re
pieces = 'Ka4Qb3Td7b4c4'
m = re.compile('[A-Za-z]{1,2}\d+')
print m.findall(pieces)

Урожайность ..

['Ka4', 'Qb3', 'Td7', 'b4', 'c4']
2 голосов
/ 07 февраля 2012

Это работает для меня:

import re
mylist = []
pieces = "Ka4Qb3Td7b4c4"
for chunk in re.finditer("(.*?[0-9]{1})",pieces):
    mylist.append(chunk.group(1))
print mylist

Вам может понадобиться настроить регулярное выражение, если есть 2-значный разделитель (я не шахматист ...)

Ради интереса, я переработал его как предложенное для понимания списка и согласен, что он намного чище:

import re
pieces = "Ka4Qb3Td7b4c4"
mylist = [ chunk.group(0) for chunk in re.finditer(".*?\d+",pieces) ]
print mylist
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...