在 python 中使用 map() 更新现有列表时遇到问题

Trouble using map() in python to update an existing list

为什么这会返回一个空列表:

def word_lengths(phrase):

    result = []
    map(lambda x: result.append(x) , phrase.split())
    return result

其中 returns 短语中每个单词的长度列表:

def word_lengths(phrase):

    return list(map(lambda x: len(x) , phrase.split()))

在 Python 3 中,map 生成一个生成器,它被延迟求值。

您需要对其进行迭代才能生效,例如通过在其上调用 list 构造函数:

result = []
list(map(lambda x: result.append(x) , phrase.split()))
return result

如您所料,这会发生变化 result

不过请注意,可以通过更简单的方式实现相同的目的:

return phrase.split()