如何在元音或空格后拆分字符串并将结果追加到Python数组?
问题原因
原代码的错误点主要有三个:
- 每遍历1个字符就直接向结果数组追加内容,没有按规则拼接成完整拆分片段再添加,导致输出数组长度远超预期
- 没有处理空格的拆分逻辑,也没有过滤输出中的空格
- 仅存储单个非元音/元音字符,没有拼接连续的非元音字符
修正实现
text = input("Please enter text : ") vowel = ["a", "e", "i", "o", "u"] final_string = [] current = "" for char in text: # 空格触发拆分,且空格不加入结果 if char == " ": if current: final_string.append(current) current = "" continue # 字符加入当前待拼接片段 current += char # 元音触发拆分 if char in vowel: final_string.append(current) current = "" # 兼容字符串末尾不是元音/空格的场景,不需要可以删除 if current: final_string.append(current) print(final_string)
输入a mambo jambo时输出为['a', 'ma', 'mbo', 'ja', 'mbo'],符合预期。
正则简化版本
使用正则匹配可以更简洁的实现需求:
import re text = input("Please enter text : ") final_string = re.findall(r'[^aeiou\s]*[aeiou]', text) print(final_string)
内容的提问来源于stack exchange,提问作者Isaya Exavery
相关产品推荐
相关产品推荐

