Matlab unravel函数,有没有更好的方法在python中执行“unravel”函数?
我面临的问题是执行n个并发事件,这些事件都将迭代器返回到它们获得的结果。但是,有一个可选的limit参数,基本上是合并所有迭代器并返回limit结果。在
因此,例如:我在8个线程上执行2000个url请求,但只想要前100个结果,而不是所有100个都来自同一个潜在线程。在
因此,unravel:import itertools
def unravel(*iterables, with_limit = None):
make_iter = {a:iter(i) for a,i in enumerate(iterables)}
if not isinstance(with_limit, int):
with_limit = -1
resize = False
while True:
for iid, take_from in make_iter.items():
if with_limit == 0:
raise StopIteration
try:
yield next(take_from)
except StopIteration:
resize = iid
else:
with_limit -= 1
if resize:
resize = False
if len(make_iter.keys()) > 1:
make_iter.pop(resize)
else: raise StopIteration
用法:
^{pr2}$
这样的东西已经存在了吗,或者这是一个像样的实现?在
谢谢
编辑,工作修复
受@abernert的建议启发,这就是我的想法。谢谢大家!在def unravel(*iterables, limit = None):
yield from itertools.islice(
filter(None,
itertools.chain.from_iterable(
itertools.zip_longest(
*iterables
)
)
), limit)
>>> a = [x for x in range(10)]
>>> b = [x for x in range(5)]
>>> c = [x for x in range(0, 20, 2)]
>>> d = [x for x in range(1, 30, 2)]
>>>
>>> print(list(unravel(a, b)))
[1, 1, 2, 2, 3, 3, 4, 4, 5, 6, 7, 8, 9]
>>> print(list(unravel(a, b, limit = 3)))
[1, 1, 2]
>>> print(list(unravel(a, b, c, d, limit = 20)))
[1, 1, 1, 2, 3, 2, 2, 4, 5, 3, 3, 6, 7, 4, 4, 8, 9, 5, 10, 11]
Matlab unravel函数,有没有更好的方法在python中执行“unravel”函数?相关推荐
- 有没有更好的方法在JavaScript中执行可选的函数参数? [重复]
本文翻译自:Is there a better way to do optional function parameters in JavaScript? [duplicate] This quest ...
- 【Python常用函数】一文让你彻底掌握Python中的pivot_table函数
任何事情都是由量变到质变的过程,学习Python也不例外.只有把一个语言中的常用函数了如指掌了,才能在处理问题的过程中得心应手,快速地找到最优方案.本文和你一起来探索Python中的pivot_tab ...
- 【Python常用函数】一文让你彻底掌握Python中的enumerate函数
任何事情都是由量变到质变的过程,学习Python也不例外.只有把一个语言中的常用函数了如指掌了,才能在处理问题的过程中得心应手,快速地找到最优方案.本文和你一起来探索Python中的enumerate ...
- import是引进外部函数吗_你必须要知道的Python中的main函数
在很多开发语言中,都有一个叫做mian的主函数,这个函数一般都是程序的入口,当程序启动时,首先执行这个函数. 比如C#语言中的main函数长这个样子. static void Main(string[ ...
- python函数执行shell_6方法,python中执行shell命令
原创文章, 禁止转载 Python经常被称作"胶水语言",因为它能够轻易地操作其他程序,轻易地包装使用其他语言编写的库.今天我们就讲解其中的一个方面,用Python调用Shell命 ...
- python使用函数的头文件_Python3.6下在Python中调用C函数
在网上已经有不少博文介绍了如何在Python2.7版本中调用C语言函数.本篇博文将为大家介绍如何在Ubuntu系统下,在Python3.6版本中使得Python脚本能调用C语言函数. 我们首先要做一下 ...
- 一文让你彻底掌握【Python中的filter函数】
任何事情都是由量变到质变的过程,学习Python也不例外.只有把一个语言中的常用函数了如指掌了,才能在处理问题的过程中得心应手,快速地找到最优方案. 本文和你一起来探索Python中的filte ...
- matlab匿名函数求导,MATLAB中的匿名函数和Python中的匿名函数
在MATLAB和Python中都有一个叫做匿名函数的东西,在这里对比一下. 一. MATLAB中这样来定义一个匿名函数: f = @(x1, x2, ...) exper @后面的括号里面是自变量,然 ...
- Python 中各种imread函数的区别与联系
Python 中各种imread函数的区别与联系 最近一直在用python做图像处理相关的东西,被各种imread函数搞得很头疼,因此今天决定将这些imread总结一下,以免以后因此犯些愚蠢的错误.如 ...
最新文章
- NLP学习思维导图,非常的全面和清晰
- java jdk windows环境 下载安装配置环境变量
- Copy修饰的NSArray
- 腾讯启动“SaaS技术联盟”联合行业制定互联互通标准
- linux 配置用户密码,Linux ——用户密码相关设置
- python mql4跟单_MT4本地跟单EA设置教程 -
- 3.微信小程序--快速开发UI界面
- 新网站如何才能被百度快速收录?
- 学习大数据培训需要有编程基础吗
- JVM调优工具锦囊:JDK自带工具与Arthas线上分析工具对比
- [竞赛01]2021CCF BDCI新闻摘要自动生成Baseline-T5模型
- R语言|导入excel数据
- 通过简单神经网络识别猫图片
- 滁州职业学院计算机,2020年滁州职业技术学院分类职业技能(系统根据考生所填第一志愿发布试卷进行测试)1、机电类专业技能(满分80分)...
- 第三周总结(2018-03-12~2018-03-16)
- ECNU OJ学习记录
- 计算机组成原理(2)各个硬件的工作原理
- 榜单预告!4D成像/点云毫米波雷达进入量产年,谁能进入TOP10
- tkinter滚动事件详解
- 工作模板文档实践整理