python根据key对流做join
来源:互联网 发布:php学生成绩管理系统 编辑:程序博客网 时间:2024/05/20 11:23
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"></span><pre name="code" class="python">def keyjoin(instreams,keyindexs=None,default=None): '''把各流进行关联,instreams是流数组,每个流中的数据类型为list或tuple indexss是用于把流数据关联在一起的字段索引,每个流对应一个索引数组''' if not keyindexs: keyindexs = [ () for s in instreams ] if not default: default = [ () for s in instreams ] data = [ () for s in instreams ] livings = set(list(range(len(instreams)))) togets = list(range(len(instreams))) while True: for toget in togets: if toget in livings: try: data[toget] = instreams[toget].next() except: livings.remove(toget) if not livings: raise StopIteration keys = [[record[index] if record else () for index in keyindexs[i]] for i,record in enumerate(data)] key = min(keys) result = [data[i] if keys[i]==key else default[i] for i,record in enumerate(data)] yield result data = [data[i] if keys[i]!=key else () for i,record in enumerate(data)] togets = [i if keys[i]==key else () for i,record in enumerate(data)]
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">>>> stream1</span>[['il', 10], ['ls', 12]]
>>> stream2
[['ls', 22.199999999999999], ['zs', 21.100000000000001]]
>>> for data in keyjoin(instreams=[iter(stream1),iter(stream2)],keyindexs=[[0],[0]]):
... print data
...
[['il', 10], ()]
[['ls', 12], ['ls', 22.199999999999999]]
[(), ['zs', 21.100000000000001]]
0 0
- python根据key对流做join
- python对流进行join
- 对流媒体文件做range cache的遇到的问题
- Join 和 Key
- HashMap 根据key排序
- php根据key值去重
- python join
- Python join()
- python .join()
- python-join()
- 最近做一个新闻类项目,用到调用新浪微博接口,经过研究测试整理步骤如下:先根据此内容获取App Key和Secret Key
- HashMap 根据Value获取Key
- Map 根据value 获取key
- 根据key查找对应内容:
- List根据指定key分组
- 根据key值,list排序
- C# Dictionary根据Key排序
- C# Dictionary根据Key排序
- java中发送http请求
- iOS开发中Can't find keyplane that supports type 5 for keyboard iPhone-Portrait-PhonePad的解决方法
- nyoj题目77:开灯问题
- python http请求时gzip解压
- Android 实现 窗口抖动效果
- python根据key对流做join
- 关于Handler Leak警告的正确处理方法
- Java加密技术之—SHA
- PB窗口之间传递多参数的方法
- [字符串][第二阶段-字符串处理][HDOJ-1004]Let the Balloon Rise
- 当jsp页面完全加载完成后执行一个js函数
- android studio gradle version
- 理解ThreadLocal
- Windows 线程漫谈——界面线程和工作者线程