如何用Python提取文本中最长的5个单词并按字母顺序排序
实现步骤
- 第一步:清洗原始文本,移除标点符号,拆分得到独立单词列表,可根据需求选择是否对单词去重
- 第二步:以单词长度为 key 倒序排序,提取前5个长度最长的单词
- 第三步:对提取到的5个单词按字母顺序排序
- 第四步:输出最终结果
可直接运行的示例代码
import string # 替换为你自己的原始文本即可 raw_text = """Python is a high-level, general-purpose programming language. Its design philosophy emphasizes code readability with the use of significant indentation. Python is dynamically typed and garbage-collected. It supports structured, object-oriented and functional programming paradigms.""" # 移除文本中所有标点符号 translator = str.maketrans('', '', string.punctuation) clean_text = raw_text.translate(translator) # 拆分得到单词列表 words = clean_text.split() # 可选步骤:如果需要排除重复单词,取消注释下面一行 # words = list(set(words)) # 按单词长度倒序排序,长度相同则按字母顺序预排序 sorted_by_length = sorted(words, key=lambda x: (-len(x), x)) # 取最长的前5个单词 top5_longest = sorted_by_length[:5] # 按字母顺序排序 result = sorted(top5_longest) # 若需要不区分大小写的字母排序,替换为下面这行 # result = sorted(top5_longest, key=str.lower) print(result)
关键逻辑说明
- 文本清洗使用了
string.punctuation内置标点集,可以一次性移除所有常见标点,避免标点附着在单词上影响长度计算 - 第一次排序的key用
-len(x)实现长度倒序,无需设置reverse=True,同时可以在长度相同时按字母顺序排列,避免排序结果混乱 - 若提取的单词总数不足5个,切片操作
[:5]会自动返回全部单词,不会抛出异常
内容的提问来源于stack exchange,提问作者clarkens
相关产品推荐
相关产品推荐

