如何按条件移除字符串字符?求补全Python后续步骤代码
按条件移除字符串字符的Python实现方案
需求概述
需要对字符串依次完成以下三步处理:
- 移除所有元音(包含大小写的a/e/i/o/u)
- 移除重复的辅音,仅保留每个辅音的首次出现
- 若字符串以指定字母开头或结尾,则移除对应的首尾字符
示例演示
原单词:Transmuted
- 移除元音后结果:Trnsmtd
- 移除重复辅音后结果:Trnsmd
- 移除指定首尾字符(以
t/T开头或d/D结尾时移除)后结果:rnsm
完整实现代码
string = "Transmuted" vowels = {'a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U'} # 步骤01:移除元音 step1_result = "" for char in string: if char not in vowels: step1_result += char print("移除元音后:", step1_result) # 步骤02:移除重复辅音,保留首次出现 seen_consonants = set() step2_result = "" for char in step1_result: if char not in seen_consonants: seen_consonants.add(char) step2_result += char print("移除重复辅音后:", step2_result) # 步骤03:移除指定首尾字符(此处设置为开头是t/T、结尾是d/D时移除) target_start = {'t', 'T'} target_end = {'d', 'D'} step3_result = step2_result # 先检查开头,符合条件则截去首字符 if step3_result and step3_result[0] in target_start: step3_result = step3_result[1:] # 再检查结尾,符合条件则截去尾字符 if step3_result and step3_result[-1] in target_end: step3_result = step3_result[:-1] print("最终处理结果:", step3_result)
代码说明
- 步骤01:用集合存储元音(集合的成员查找效率比列表更高),遍历原字符串逐个判断,只把非元音字符拼接成新字符串。
- 步骤02:用一个集合记录已经出现过的辅音,遍历步骤1的结果,每个字符只在未出现过时才添加到结果里,保证每个辅音只保留第一次出现的版本。
- 步骤03:先定义需要触发移除操作的首尾字符集合,先判断字符串非空(避免索引越界),再检查开头和结尾是否符合条件,符合则截取对应的子串。
内容的提问来源于stack exchange,提问作者PyiPath2022
相关产品推荐
相关产品推荐

