Python如何高效拼接字符串列表生成首字母大写的条目
解决方案
核心实现逻辑是:以「去除首尾空格后首字母大写」作为新条目的分割标识,连续的非分割标识片段直接拼接到当前条目末尾,仅需一次遍历即可完成,时间复杂度为最优的O(n)。
可直接运行的实现代码
places = [' Ye', 'oks', 'am', '-', 'd', 'ong', ' Gang', 'nam', '-', 'gu Seoul', ' Korea'] result = [] current = [] for s in places: # 去除当前片段首尾空白 cleaned = s.strip() # 遇到新的大写开头片段,就把之前拼接的条目存入结果 if cleaned[0].isupper() and current: result.append(''.join(current)) current = [] current.append(cleaned) # 存入最后一个拼接完成的条目 if current: result.append(''.join(current)) # 若需要得到第二种拆分空格的输出结果,放开下面这行注释即可 # result = [part for item in result for part in item.split()] print(result)
输出结果说明
- 不启用空格拆分逻辑时,输出为你给出的第一类预期结果:
['Yeoksam-dong', 'Gangnam-gu Seoul', 'Korea'] - 启用空格拆分逻辑后,输出为你给出的第二类符合要求的结果:
['Yeoksam-dong', 'Gangnam-gu', 'Seoul', 'Korea']
方案优势
- 仅单次遍历原列表,无重复切割、查找等冗余操作,执行效率最高
- 规避了你现有代码中索引越界、变量未定义的问题,逻辑更简洁鲁棒
内容的提问来源于stack exchange,提问作者albusdemens
相关产品推荐
相关产品推荐

