0

我对 Python 完全陌生,我被赋予了使用 Y 组合器重写两个 Python 函数的任务。为此,我必须先将它们转换为 lambda,这就是问题所在 - 它们都有多个语句,我在使它们与 lambda 兼容时遇到了麻烦。我一直在阅读有关使用元组或列表的信息,但这似乎不适用于我的情况。

def count(word_list, stopwords, wordfreqs):
    if word_list == []:
        return
    else:
        word = word_list[0]
        if word not in stopwords:
            if word in wordfreqs:
                wordfreqs[word] += 1
            else:
                wordfreqs[word] = 1
        count(word_list[1:], stopwords, wordfreqs)

def wf_print(wordfreq):
    if wordfreq == []:
        return
    else:
        (w, c) = wordfreq[0]
        print(w, '-', c)
        wf_print(wordfreq[1:])

例如,我尝试将最后一个函数编写为以下 lambda:

wf_print = (lambda wordfreq:
    None 
    if wordfreq == [] 
    else 
    [None, (w, c) = wordfreq[0], print(w, '-', c), wf_print(wordfreq[1:])][0]
)

但是列表中的赋值存在语法错误。

当涉及到这两个功能时,您能指出我正确的方向吗?

4

0 回答 0