我正在编写输入单词列表的代码。如果列表中的任何单词恰好是4个字符,那么这些单词将以这种格式返回:
[ '单词', '4']
我正在制作一个循环来检查整个列表,但显然返回是停止该功能所以只有前4个字母的单词被打印出来。根据说明,必须使用'return'而不打印,输出必须采用上面的列表格式。任何帮助将不胜感激。谢谢。
def letter(list):
word = []
for word in list:
if len(word)==4:
return word
答案 0 :(得分:0)
使用return
后,它会从函数中退出,因此最好填充整个四个字母单词列表然后返回
def letter(word_list):
words = []
for word in word_list:
if len(word)==4:
words.append(word)
return words
答案 1 :(得分:0)
一种方法是使用内置过滤器函数,该函数将布尔函数和迭代作为输入。对于filter(f(item),lst),返回lst中f(item)返回true的所有项。请记住,filter()返回一个过滤器对象,因此您需要应用list(filter())来返回列表。对于这种情况,代码将是:
list(filter(lambda word: len(word) == 4, words))
另一种方法是使用列表理解:
[word for word in words if len(word) == 4]
答案 2 :(得分:0)
使用列表理解
def letter(list):
return [word for word in list if len(word)==4]