首页 > 解决方案 > 我想计算列表中单个单词中的字母并删除 3 个字母以下的单词

问题描述

我有一个单词列表,我试图将其分解为一个字符串,然后删除该字符串中小于 3 个字母的任何单词 - 但不确定如何处理该列表是 ["John", "Peter", “A”、“Be”、“Tom”、“June”]

标签: python

解决方案


有几种方法可以做到这一点。所有 3 种方法都依赖于len()计算有多少项目。认为:

data = ["John", "Peter", "A", "Be", "Tom", "June"]

1:传统的for循环

遍历列表并将长度超过 3 的单词添加到结果列表中:

results = []
for item in data:
    if len(item) >= 3:
        results.append(item)

2:列表理解

这是方法 1 的精简版,也是我最喜欢的:

results = [item for item in data if len(item) >= 3]

3:过滤

这是我最不喜欢的,但仍然是一个选择。它使用一个返回 True/False 的函数来检查每个项目:

results = list(filter(lambda x: len(x) >= 3, data))

您也可以在这里使用普通函数而不是 lambda:

def more_than_three(item):
    return len(item) >= 3

results = list(filter(more_than_three, data))

推荐阅读