Python - TypeError:需要一个整数(过滤函数)

时间:2016-12-17 01:25:37

标签: python-2.7 list filter

我正在尝试创建一个函数,该函数将返回以字母“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")

我想要的输出是[“梨”,“菠萝”,“李子”]。

非常感谢你!

1 个答案:

答案 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的工作原理。