【发布时间】:2018-05-12 14:06:39
【问题描述】:
为什么返回一个空列表:
def word_lengths(phrase):
result = []
map(lambda x: result.append(x) , phrase.split())
return result
因为这会返回短语中每个单词的长度列表:
def word_lengths(phrase):
return list(map(lambda x: len(x) , phrase.split()))
【问题讨论】:
-
请提供示例输入(短语)以及预期输出与实际输出。
-
请注意,
lambda x: len(x)只是表达len的一种更复杂的方式,并且整个事情会更Python 地表示为列表理解:[len(word) for word in phrase.split()]。 -
Python 3 map dictionary update method to a list of other dictionaries 的可能重复项(是关于
dict.update,而不是list.append,但其他所有内容都相同) -
首先,在前一种情况下,您没有将
map调用分配给任何内容。甚至使用result.append(x)作为您的lambda 调用list(map(...只会返回None的列表,其中包含phrase.split()中的尽可能多的元素
标签: python python-3.x functional-programming map-function