Python按单词数排序句子求助:现有代码仅按字符长度排序
按句子单词数排序的代码调整方案
现有代码排序逻辑使用key=len计算的是字符串的总字符长度,不符合按单词数排序的需求,仅需修改sorted方法的key参数即可实现预期效果。
调整后的完整代码
K = sentences # 按句子的单词数量降序排序 lengthorder = sorted(K, key=lambda x: len(x.split()), reverse=True) str1 = '\n'.join(lengthorder) print(str1) print('\n') # 动态输出前3个长句的单词数,无需硬编码句子内容 for idx, sent in enumerate(lengthorder[:3]): word_count = len(sent.split()) rank = ["longest", "second longest", "third longest"][idx] print(f"The {rank} sentence in this text contains {word_count} words.")
核心修改说明
- 排序部分:将
sorted(K, key=len, reverse=True)改为sorted(K, key=lambda x: len(x.split()), reverse=True),lambda x: len(x.split())会对每个传入的句子x,先按空白符拆分计算单词数量(split()无参数时自动忽略首尾空白、适配连续空格/制表符等场景),再以此为依据排序 - 输出部分:优化了原硬编码指定三个句子的逻辑,直接从排序后的列表中读取前三个句子计算单词数,适配任意输入的句子集合,不用每次手动修改输出内容
内容的提问来源于stack exchange,提问作者maria
相关产品推荐
相关产品推荐

