删除数字并将其转换为列表

2024-06-01 03:40:43 发布

您现在位置:Python中文网/ 问答频道 /正文

#

Python 更明确的提问方式是:

如果我有一个字符串,如下所示: “棕榈滩。第6场比赛Gavea5场比赛Aronas7场比赛Iowarace 3场比赛Orange PARK。第5场比赛”

如何将该字符串转换为: 棕榈滩、加维亚、马罗纳斯、爱荷华州、橙色公园

也就是说,让列表中的每个项目都成为“标题”(即大写的第一个字母,其余的小写),删除数字和单词“种族”

我正在设置导出到Excel

提前谢谢-安格斯

#

Tags: 项目字符串标题park列表字母方式橙色
2条回答

您可以使用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']

无需导入任何库即可执行此操作:

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.', '']

相关问题 更多 >