【发布时间】:2017-12-15 13:27:59
【问题描述】:
我需要将一个函数应用于一个大列表,例如[funz(x) for x in my_list]
每次评估都必须非常迅速。假设funz(x) 应该在不到0.1 秒内执行。
如果执行时间超过0.1 秒,我希望我的funz 返回None。
实际上,如果 my_list 有 n 元素。代码应该在不到0.1*n 秒内执行。
最好的方法是什么?
【问题讨论】:
-
您的意思是在最多 0.1 秒后返回
None,或者如果耗时太长,则为函数计时并返回None? -
在最多 0.1 秒后返回无。
-
所以我的清单很长。我想为大多数元素设置
funz(x)的值,但我需要它在不太长的时间内完成 -
如果你的函数中有一个循环,可能会不时检查经过的时间,如果超过则返回。取决于你的功能是什么。也许你可以模拟它并编辑你的 q。
-
我的函数是来自标准库的
socket.getfqdn。对于某些ips,它非常慢,而对于另一些ips,它非常快。基本上我需要跳过慢 ips
标签: python python-2.7 timer signals