在 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()
为什么这会返回一个空列表:
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()