我面临的问题是执行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”函数?相关推荐

  1. 有没有更好的方法在JavaScript中执行可选的函数参数? [重复]

    本文翻译自:Is there a better way to do optional function parameters in JavaScript? [duplicate] This quest ...

  2. 【Python常用函数】一文让你彻底掌握Python中的pivot_table函数

    任何事情都是由量变到质变的过程,学习Python也不例外.只有把一个语言中的常用函数了如指掌了,才能在处理问题的过程中得心应手,快速地找到最优方案.本文和你一起来探索Python中的pivot_tab ...

  3. 【Python常用函数】一文让你彻底掌握Python中的enumerate函数

    任何事情都是由量变到质变的过程,学习Python也不例外.只有把一个语言中的常用函数了如指掌了,才能在处理问题的过程中得心应手,快速地找到最优方案.本文和你一起来探索Python中的enumerate ...

  4. import是引进外部函数吗_你必须要知道的Python中的main函数

    在很多开发语言中,都有一个叫做mian的主函数,这个函数一般都是程序的入口,当程序启动时,首先执行这个函数. 比如C#语言中的main函数长这个样子. static void Main(string[ ...

  5. python函数执行shell_6方法,python中执行shell命令

    原创文章, 禁止转载 Python经常被称作"胶水语言",因为它能够轻易地操作其他程序,轻易地包装使用其他语言编写的库.今天我们就讲解其中的一个方面,用Python调用Shell命 ...

  6. python使用函数的头文件_Python3.6下在Python中调用C函数

    在网上已经有不少博文介绍了如何在Python2.7版本中调用C语言函数.本篇博文将为大家介绍如何在Ubuntu系统下,在Python3.6版本中使得Python脚本能调用C语言函数. 我们首先要做一下 ...

  7. 一文让你彻底掌握【Python中的filter函数】

    任何事情都是由量变到质变的过程,学习Python也不例外.只有把一个语言中的常用函数了如指掌了,才能在处理问题的过程中得心应手,快速地找到最优方案.    本文和你一起来探索Python中的filte ...

  8. matlab匿名函数求导,MATLAB中的匿名函数和Python中的匿名函数

    在MATLAB和Python中都有一个叫做匿名函数的东西,在这里对比一下. 一. MATLAB中这样来定义一个匿名函数: f = @(x1, x2, ...) exper @后面的括号里面是自变量,然 ...

  9. Python 中各种imread函数的区别与联系

    Python 中各种imread函数的区别与联系 最近一直在用python做图像处理相关的东西,被各种imread函数搞得很头疼,因此今天决定将这些imread总结一下,以免以后因此犯些愚蠢的错误.如 ...

最新文章

  1. NLP学习思维导图,非常的全面和清晰
  2. java jdk windows环境 下载安装配置环境变量
  3. Copy修饰的NSArray
  4. 腾讯启动“SaaS技术联盟”联合行业制定互联互通标准
  5. linux 配置用户密码,Linux ——用户密码相关设置
  6. python mql4跟单_MT4本地跟单EA设置教程 -
  7. 3.微信小程序--快速开发UI界面
  8. 新网站如何才能被百度快速收录?
  9. 学习大数据培训需要有编程基础吗
  10. JVM调优工具锦囊:JDK自带工具与Arthas线上分析工具对比
  11. [竞赛01]2021CCF BDCI新闻摘要自动生成Baseline-T5模型
  12. R语言|导入excel数据
  13. 通过简单神经网络识别猫图片
  14. 滁州职业学院计算机,2020年滁州职业技术学院分类职业技能(系统根据考生所填第一志愿发布试卷进行测试)1、机电类专业技能(满分80分)...
  15. 第三周总结(2018-03-12~2018-03-16)
  16. ECNU OJ学习记录
  17. 计算机组成原理(2)各个硬件的工作原理
  18. 榜单预告!4D成像/点云毫米波雷达进入量产年,谁能进入TOP10
  19. tkinter滚动事件详解
  20. 工作模板文档实践整理

热门文章

  1. java/php/net/python民宿平台信息管理系统设计
  2. 授人以鱼,不如授人以渔
  3. 单片机4x4矩阵键盘c语言,求一个单片机4X4矩阵键盘扫描程序,C语言的。
  4. 学会这款自动化测试神器,不会写代码也能做
  5. swagger 返回值描述
  6. AJAX 介绍-参数介绍
  7. 「云计算技术」最佳云数据库
  8. java生成sql文件
  9. Java基础教程-10-多线程
  10. 用telnet判断端口策略是否开通