Как разделить строку Python
В переменной chess мы получаем какой-то любой фрагмент шахматной партии.
Например:
chess = '1. d2 e6 2. e4 d5 3. Кc3 c5 4. Кf3 Кc6 5. e:d5 e:d5 6. Сe2 Кf6 7. O-O Сe7 8. Сg5 O-O 9. d:c5 Сe6 10. Кd4 С:c5 11. Кb3 Сe7 12. Сf3 Кe5 13. Лe1 К:f3+ 14. Ф:f3 Лc8 15. h3 h6'
Как можно разделить строку чтобы распечатать ход первой партии? Мне нужно разделить все партии чтобы выглядело так:
['1. d2 e6', '2. e4 d5', '3. Кc3 c5', .... ]
Ответы (2 шт):
Автор решения: Danis
→ Ссылка
попробуйте так:
def f(chess):
chess = chess.split()
return [" ".join(chess[i:i+3]) for i in range(0, len(chess), 3)]
chess = '1. d2 e6 2. e4 d5 3. Кc3 c5 4. Кf3 Кc6 5. e:d5 e:d5 6. Сe2 Кf6 7. O-O Сe7 8. Сg5 O-O 9. d:c5 Сe6 10. Кd4 С:c5 11. Кb3 Сe7 12. Сf3 Кe5 13. Лe1 К:f3+ 14. Ф:f3 Лc8 15. h3 h6'
print(f(chess))
Автор решения: splash58
→ Ссылка
import re
re.split(r'\s+?\b(?=\d+\.)', chess)
['1. d2 e6',
'2. e4 d5',
'3. Кc3 c5',
...