生成器:在固定关闭时预处理事件

2024-09-29 19:36:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个生成事件的生成器,我想用可以从API获取的额外元数据来丰富它

某些事件具有链接到它们的对象id,而其他事件具有对象的哈希,但并非两者都有。我无法基于哈希获取对象id,我只能执行id->;散列

我希望在所有事件中都有id和hash字段,通过“向前看”生成器,只有固定数量的事件,并在id和hash之间构建一个双向映射。我不想对整个iterable进行两次检查(首先构建映射,然后打印它)

假设我有一个populate_mapping方法和一个encrich_event方法(两个方法每次都接收一个事件),其中populate_mapping更新一个全局字典并且encrich_event使用该字典,我希望调用它们的方式是populate_mapping准确地处理了N个以上的事件,而且enrich_event的结果仍然是惰性的,并且可以通过生成器获得


Tags: 数据对象方法gteventapiid数量
1条回答
网友
1楼 · 发布于 2024-09-29 19:36:44

您提出这个问题的方式非常抽象,但似乎您正在尝试使用itertools.tee函数,该函数可以将迭代器一分为二

x1, x2 = itertools.tee(your_generator, 2)

然后跳过第一个迭代器中的前4个元素:

x1 = itertools.islice(x1, 4, None)

将x1传递给一个函数,将x2传递给另一个函数,x1将是前面的4个元素,除非需要,否则不会消耗额外的元素(tee函数上下文将在其范围内存储4个元素)

相关问题 更多 >

    热门问题