Удалить числа и превратить в список - PullRequest
0 голосов
/ 28 мая 2020
#

PYTHON Более ясный способ задать вопрос:

Если у меня есть строка следующего вида: 'PALM BEACH.Race 6GaveaRace 5MaronasRace 7IOWARace 3ORANGE PARK.Race 5'

Как мне превратить эту строку в: Palm Beach, Gavea, Maronas, Iowa, Orange Park

То есть сделать каждый элемент в списке 'title' (ie. Первая буква верхнего регистра, а остальные нижние case), удалите числа и слово Race.

Я настраиваю экспорт в Excel.

Заранее спасибо - Angus

#

Ответы [ 2 ]

0 голосов
/ 31 мая 2020

Вы можете сделать это без импорта какой-либо библиотеки:

races = """PALM BEACH.Race 6GaveaRace 5MaronasRace 7IOWARace 3ORANGE PARK.Race 5"""
''.join([ch if not ch.isdigit() else 'xxx' for ch in races.replace('Race ','')]).split('xxx')

Вывод:

['PALM BEACH.', 'Gavea', 'Maronas', 'IOWA', 'ORANGE PARK.', '']
0 голосов
/ 31 мая 2020

Вы можете использовать re.split и некоторые строковые манипуляции:

import re
>>> s = 'PALM BEACH.Race 6GaveaRace 5MaronasRace 7IOWARace 3ORANGE PARK.Race 5'
>>> # Split by the race and folowed by a digit
>>> race_names = re.split('Race \d+', s)
>>> def format_name(name):
...     # Remove the trailing period on some race names
...     name = name.rstrip('.')
...     # Change name to title case
...     name = name.title()
...     return name
>>> # Format the name and remove any empty entries in the list
>>> race_names = [format_name(name) for name in race_names if name]
>>> list(race_names)
['Palm Beach', 'Gavea', 'Maronas', 'Iowa', 'Orange Park']
...