我正在使用Python,我注意到该map()功能似乎并没有做太多.例如,如果我写程序:
mylist = [1, 2, 3, 4, 5]
function = map(print, l)
print(function)
Run Code Online (Sandbox Code Playgroud)
它没有优势:
mylist = [1, 2, 3, 4, 5]
for item in mylist:
print(item)
Run Code Online (Sandbox Code Playgroud)
实际上,第二个选项创建的变量较少,对我来说整体看起来通常更清晰.我认为这map()提供了一个在例子中看不到的优点,但它究竟是什么?
编辑:似乎有些人一直在回答一个与我打算提出的问题不同的问题.制作Python的开发人员显然在创建map()函数方面做了一些工作,他们甚至决定不将它从3.0中删除,而是继续研究它.他们决定服务的基本功能是什么?
在列表推导式之前,它曾经更有用。你可能见过这样的代码
[int(x[2]) for x in l]
Run Code Online (Sandbox Code Playgroud)
回到列表推导式之前,您可以将其写为
map(lambda x: int(x[2]), l)
Run Code Online (Sandbox Code Playgroud)
(这也是在map返回迭代器之前返回的。)
如今,列表推导式和生成器表达式处理了map过去的大部分工作。map有时仍然更干净,尤其是当您不需要 lambda 时。例如,有些人更喜欢
map(str, l)
Run Code Online (Sandbox Code Playgroud)
超过
(str(x) for x in l)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2405 次 |
| 最近记录: |