Python列表推导式如何排除'the'统计其余单词长度
列表推导式过滤'the'单词实现方案
直接在列表推导式尾部加if条件做筛选就行,Python原生支持这种写法,不用额外嵌套循环。
修正后的完整代码
sentence = "MMU is the best university in Malaysia" word_lengths = [len(n) for n in sentence.split() if n != 'the'] word_lengths
运行结果
[3, 2, 4, 10, 2, 8]
原理说明
- 原写法是对
split()切出来的所有单词无差别计算长度,所以the对应的长度3会被算进结果里。 - 推导式里新增的
if n != 'the'是过滤规则:遍历到的单词只有不等于the的时候,才会执行前面的len(n)逻辑算长度、放进结果列表,自然就把the排除了。 - 如果后续需要排除多个单词,改下判断条件就行,比如同时排除
the和a,就把条件换成if n not in {'the', 'a'}。
内容的提问来源于stack exchange,提问作者Waiee Zainol
相关产品推荐
相关产品推荐

