回答问题
我正在使用 Python,我注意到map()函数似乎并没有做太多事情。例如,如果我编写程序:
mylist = [1, 2, 3, 4, 5]
function = map(print, l)
print(function)
它没有提供任何优势:
mylist = [1, 2, 3, 4, 5]
for item in mylist:
print(item)
事实上,第二个选项创建的变量更少,对我来说总体上看起来更干净。我会假设map()提供了在像这个简单的示例中无法看到的优势,但它们到底是什么?
编辑:似乎有些人回答的问题与我打算问的问题不同。制作 Python 的开发人员显然在创建map()函数方面付出了一些努力,他们甚至决定不将其从 3.0 中移除,而是继续开发。他们决定它的基本功能是什么?
Answers
在列表推导之前,它曾经更有用。您可能已经看过类似的代码
[int(x[2]) for x in l]
回到列表推导之前,您可以将其写为
map(lambda x: int(x[2]), l)
(这也是在map返回迭代器之前。)
如今,列表推导和生成器表达式处理了map过去所做的大部分工作。map有时仍然更干净,尤其是当您不需要 lambda 时。例如,有些人喜欢
map(str, l)
超过
(str(x) for x in l)