我正在尝试创建一个函数,该函数将返回以字母“p”开头的单词列表。我收到“TypeError:需要一个整数”错误。我不确定需要整数的位置,或者为什么。
def filter_words(word_list, letter):
return filter(list().pop([0]) == letter, word_list)
filter_words(["banana", "apple", "pear", "grapefruit", "pineapple",\
"orange", "plum", "kiwi"], "p")
我想要的输出是[“梨”,“菠萝”,“李子”]。
非常感谢你!
答案 0 :(得分:0)
我不太确定你对filter
的第一个论点的意图是什么。过滤器需要一个函数作为它的第一个参数,其中传递的参数是列表中的每个项目(在本例中为单词)。这是一个适合我的版本:
def filter_words(word_list, letter):
return filter(lambda word: word[0] == letter, word_list)
print(filter_words(["banana", "apple", "pear", "grapefruit", "pineapple",\
"orange", "plum", "kiwi"], "p"))
注意第一个参数是一个函数(lambda),它接受一个单词并检查它的第一个字母。
还要注意,我很少写Python,并且在我的休息时间快速写在手机上,所以可能有更好的方法来写这个。这将打破空话,因为他们没有第0个字符。它应该让您了解filter
的工作原理。