python - 如何在python中对流进行部分分区?
问题描述
我正在处理一个数据流(以块为单位,即缓冲),并希望将其任意部分发送到一个流,其余部分发送到第二个流。
例如,假设总列表的长度为 20。如果列表的 15% 需要进入第一个输出列表,那么最终第一个列表中应该有 3 个项目,而另一个列表中应该有 17 个项目。如果我正在处理大小为 5 的块的列表,那么我想将大约一个项目块发送到第一个流,但一次发送零个项目。在 4 个块中,我会将 1+1+1+0 = 3 个项目发送到第一个列表。
如果列表足够大,那么依靠大数定律并随机选择每个项目的发送位置似乎是合适的。鉴于它不会总是如此,我所能想到的就是维护两个计数器并根据它如何影响当前比率(“控制”到所需比率)来决定将每个项目发送到哪里。这是最好的方法吗?
partition
使用我目前的方法,当 Itertools Recipes 中的任何一个或grouper
来自Itertools Recipes似乎是我需要的更通用的起点时,我将编写一些自定义逻辑。
解决方案
推荐阅读
- react-native - 在本机反应中为rotateX设置动画时出错
- c# - 在 Asp.Net MVC 中使用 Google Workbox 实现离线功能
- r - 您应该在预测矩阵中使用结果和事件时间变量吗?
- go - 包名与 github 路径不同的 Go 模块
- reactjs - 如何使用反应路由器在整个应用程序中应用某些布局?
- python-3.x - 如何在 Python 中制作查找表在 tkinter 中显示它
- average - Tableau 桌面平均行粒度错误
- html - 如何使用css在右上角制作样式按钮
- emacs - 使用 slime/swank 导航到 `defun` 和 `defmacro` 的定义
- pandas - pandas 数据框的单元格引用,根据具体值进行过滤