簡體   English   中英

生成器:以固定偏移量預處理事件

[英]generator: pre-processing events at fixed offset

我有一個生成事件的生成器,我想用可以從API提取的其他元數據來豐富它。

某些事件具有鏈接到它們的對象ID,而其他事件則具有對象的哈希,但不能同時具有兩者。 我無法基於哈希獲取對象ID,只能執行id-> hash。

我希望在所有事件中同時具有id和hash字段,方法是“僅在生成器前”固定數量的事件,並在id和哈希之間建立雙向映射。 我不想遍歷整個可迭代對象兩次(首先構建映射,然后再打印)。

假設我有一個populate_mapping方法和一個encrich_event方法(一次都接收一個事件),其中populate_mapping更新了一個全局詞典,而encrich_event使用該詞典,我希望它們以這樣的方式被調用,即populate_mapping已經處理了N事件超過encrich_event ,並且結果enrich_event仍然懶惰評估和可通過一台發電機。

提出問題的方式非常抽象,但是似乎您正在嘗試使用itertools.tee函數,該函數可以將迭代器一分為二

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

然后跳過第一個迭代器的前四個元素:

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

將x1傳遞給一個函數,將x2傳遞給另一個函數,並且x1將在前面4個元素,除非需要,否則不會消耗額外的元素(tee函數上下文將在其作用域內部存儲4個元素)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM