[英]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.