You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python3如何提取首字母不重复的首个连续A-Z开头词组集合

实现方案

核心思路

  • 先对输入内容做格式化清洗,统一转为无前后空白的词组列表
  • 用集合记录已经出现过的首字母,遍历过程中只要遇到首字母已存在的词组就立刻终止遍历
  • 遍历过程中收集符合要求的词组,最后可根据需要返回列表或者逗号分隔的字符串

完整代码

def get_unique_first_phrase(input_data):
    # 兼容输入为逗号分隔字符串或原生列表
    if isinstance(input_data, str):
        word_list = [item.strip() for item in input_data.split(',') if item.strip()]
    else:
        word_list = [item.strip() for item in input_data if item.strip()]
    
    seen_first_chars = set()
    result = []
    
    for word in word_list:
        if not word:
            continue
        first_char = word[0]
        # 遇到重复首字母直接终止
        if first_char in seen_first_chars:
            break
        seen_first_chars.add(first_char)
        result.append(word)
    
    # 返回逗号分隔的字符串,需要返回列表直接return result即可
    return ', '.join(result)

测试验证

用给出的示例测试:

test_str = "Africa, Asia, Bolivia, Columbia, Connecticut, Delaware, Egypt, Finland, Germany, Haiti, India, London, Poland, Vietnam, zebra, Boston, California, Mississippi, Russia, vacation"
print(get_unique_first_phrase(test_str))

输出结果:
Africa, Asia, Bolivia, Columbia, Connecticut, Delaware, Egypt, Finland, Germany, Haiti, India, London, Poland, Vietnam, zebra
和预期完全一致。

场景适配说明

  • 如果列表从首字母B、C或者其他任意字母的单词开始,逻辑完全不需要调整,集合会从第一个元素开始记录首字母,只要出现重复就会立刻停止截取,符合要求
  • 如果要求首字母不区分大小写,只需把代码中first_char = word[0]修改为first_char = word[0].lower()(或者upper())即可

内容的提问来源于stack exchange,提问作者grambo88

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 23:57:02