从字符串列表中查找多个最长公共前缀,支持去除/或:优化可读性
字符串列表公共前缀提取方法
功能需求
- 从给定的字符串列表中提取所有符合规则的公共前缀
- 提取过程中可去除前缀中的
/或:字符,提升结果可读性
输入输出示例
输入示例:
input = ["item1", "item2", "product1", "product2", "variant:123", "variant:789"]
预期输出结果:
item product variant
实现逻辑(以Python为例)
- 先对输入的字符串列表做排序,方便后续分组处理
- 按「数字、
/、:」为分隔符,截取每个字符串的开头部分作为分组依据,相同开头的字符串归为同一组 - 对每组的前缀做特殊字符清洗,去除
/和: - 对清洗后的前缀去重,得到最终结果
可运行示例代码
from itertools import groupby import re def get_cleaned_prefixes(str_list): result = set() # 排序后按前缀分组 for prefix, _ in groupby(sorted(str_list), key=lambda s: re.split(r'[0-9/:]', s)[0]): # 清洗特殊字符 cleaned = prefix.replace('/', '').replace(':', '') if cleaned: result.add(cleaned) return sorted(result) # 测试代码 if __name__ == "__main__": input_list = ["item1", "item2", "product1", "product2", "variant:123", "variant:789"] for prefix in get_cleaned_prefixes(input_list): print(prefix)
内容的提问来源于stack exchange,提问作者Satyakam Pandya
相关产品推荐
相关产品推荐

