首页 > 解决方案 > map 仅在 tuple() 内部时有效

问题描述

我有一个函数,它将一个对象作为参数并调用该对象的一个​​方法。该方法只是打印出一些东西并且不返回任何东西。

def func(someobject):
 someobject.method()

现在我得到了一堆我想传递给“func”函数的对象的列表。

我已经尝试过使用这样的地图功能:

list = [object1, object2, object3]
map(func, list)

但是它仅在我这样做时才有效:

tuple(map(func, list))

后来我想要与 API 通信的方法,所以我的目标是使用多处理来加速整个过程,但是我什至不能正常地把它弄好 xD。

如果我犯了一个菜鸟错误,请原谅,我对 python 和一般编程都很陌生

标签: pythonpython-requests

解决方案


map自己工作,我猜你很困惑,因为它返回一个迭代器而不是一个实际的列表或元组。这是从 Python 3 开始的默认行为,因此如果您遵循旧教程,这似乎是行为上的差异。

FWIW,如果您的数据集很大并且您不想同时加载内存中的所有项目,迭代器通常会更好。您已经可以在map没有显式转换的情况下使用,如下所示:

for spam in map(func, _lst):
  print(spam)

推荐阅读