Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何用map()函数替换此代码?_Python_Python 2.7 - Fatal编程技术网

Python 如何用map()函数替换此代码?

Python 如何用map()函数替换此代码?,python,python-2.7,Python,Python 2.7,我认为最后两行可以用map()函数替换,但我不知道如何替换 感谢您的帮助。使用lambda表达式,不会为您节省很多打字时间,也不会在任何方面提供帮助 thlst = [threading.Thread(target=i.report) for i in users] ; for th in thlst : th.start(); 虽然这是毫无意义的,你所拥有的也没有错 您甚至不需要map() 列出理解力,但不要指定。基本上,同样的事情map()也可以 map(lambda x:

我认为最后两行可以用map()函数替换,但我不知道如何替换


感谢您的帮助。

使用lambda表达式,不会为您节省很多打字时间,也不会在任何方面提供帮助

thlst = [threading.Thread(target=i.report) for i in users] ;
for th in thlst :
    th.start();

虽然这是毫无意义的,你所拥有的也没有错

您甚至不需要
map()

列出理解力,但不要指定。基本上,同样的事情
map()
也可以

   map(lambda x: x.start(),thlst)
如果你真的不需要
thlst
,那就马上开始吧

[th.start() for th in thlst]
同样地

[threading.Thread(target=i.report).start() for i in users]

虽然你可以,但你不应该。Map是一种函数构造,当您计算基于参数的列表时,应该使用它,该参数也是一个列表。在这里,您忽略了start的返回值并依赖于副作用,因此这不适用。在Python中,您不需要这些分号。您仍然需要使用map对象来实际应用该方法,因此实际上只有2行变为1加上生成要丢弃的值。如果你需要<代码> THLST ,那么我将只使用for循环。我会考虑这个糟糕的形式—— MAP()/代码>的全部要点是从现有的一个序列中生成一个新的序列,但是在这种情况下,新的序列立即被丢弃(并且完全由<代码> No.< /Cult> s)组成。这不是
map
的工作方式。Python的
map
是一个函数,而不是列表方法
map
不是
list
s上的方法,它是一个内置函数。2.这实际上并不需要
lambda
,因为对象的类型是已知的,所以您可以将unbound方法作为transform函数传递,并避免额外的方法调用层:
map(threading.Thread.start,thlst)
3。正如在对该问题的评论中所指出的,这是对
map
的滥用,确实不应该受到鼓励<代码>映射用于功能编程,基于输入和输出,无副作用。使用它来产生副作用是有欺骗性的(并且会无缘无故地创建一个临时的垃圾结果列表)。哎哟,对不起,太多JS了,在Python中重写它。如果不使用它,为什么要创建一个列表?对于我的用户:@JorgePlaza这个问题似乎是在问问题中的替代品,不是吗?@cricket_007我明白你的意思,我只是认为建议建立列表不是一个好的替代品
map(lambda u: threading.Thread(target=u.report).start(), users)