Python中如何拆分字符串并合并指定相邻字母'al'?
拆分字符串时合并相邻的'al'
给定字符串,例如:
original_words = "installation alcohol international"
需要将其拆分为单个字符的列表,但把所有相邻的a和l合并为al,同时忽略空格,最终得到:
['i', 'n', 's', 't', 'al', 'l', 'a', 't', 'i', 'o', 'n', 'al', 'c', 'o', 'h', 'o', 'l', 'i', 'n', 't', 'e', 'r', 'n', 'a', 't', 'i', 'o', 'n', 'al']
方法一:遍历字符(新手友好)
通过逐个遍历字符,跟踪前一个字符的状态来实现合并,逻辑清晰易懂:
original_words = "installation alcohol international" result = [] prev_char = None for char in original_words: # 跳过空格 if char == ' ': continue # 检查当前字符是l且前一个是a,执行合并 if prev_char == 'a' and char == 'l': result.pop() # 移除之前添加的单个a result.append('al') prev_char = None # 重置前字符,避免重复匹配 else: result.append(char) prev_char = char print(result)
方法二:正则表达式(简洁高效)
利用正则的优先匹配特性,先匹配al,再匹配单个字符,同时先去除字符串中的空格:
import re original_words = "installation alcohol international" # 先移除所有空格 clean_string = original_words.replace(" ", "") # 优先匹配'al',再匹配任意单个字符 result = re.findall(r'al|.', clean_string) print(result)
两种方法都能得到目标结果,第一种适合新手理解逻辑,第二种代码更简洁。
内容的提问来源于stack exchange,提问作者Heindryk
相关产品推荐
相关产品推荐

