如何返回指定长度的所有列表元素?

14 投票
5 回答
29271 浏览
提问于 2025-05-01 03:02

我正在尝试找出长度特定的单词。

这是我目前的代码。words 是一个单词列表,而 size 是一个正整数。

def by_size(words, size)
    for word in words:
        if len(word) == size:

我不太确定接下来该怎么做。by_size(['a', 'bb', 'ccc', 'dd'], 2) 应该返回 ['bb', 'dd']。如果有任何建议,我会非常感激。

暂无标签

5 个回答

0

如果你打算以后用到这些东西,把它们放在一个列表里是个不错的主意。或者你也可以直接把它们打印到终端上。具体怎么做其实取决于你的目标。你可以在条件语句里用列表(或者你给变量起的其他名字)加上 .append 来实现这个功能。

3
def by_size(words,size):
    result = []
    for word in words:
        if len(word)==size:
            result.append(word)
    return result

现在像下面这样调用这个函数

desired_result = by_size(['a','bb','ccc','dd'],2)

其中 desired_result 的结果将会是 ['bb', 'dd']

4

你是说这个吗:

In [1]: words = ['a', 'bb', 'ccc', 'dd']

In [2]: result = [item for item in words if len(item)==2]

In [3]: result
Out[3]: ['bb', 'dd']
7
return filter(lambda x: len(x)==size, words)

想了解更多关于这个函数的信息,可以查看 filter() 的文档。

24

我会使用列表推导式:

def by_size(words, size):
    return [word for word in words if len(word) == size]

撰写回答