如何返回指定长度的所有列表元素?
我正在尝试找出长度特定的单词。
这是我目前的代码。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]