[Tutor] Iterator Merging

Kent Johnson kent37 at tds.net
Wed Nov 11 16:12:38 CET 2009


On Wed, Nov 11, 2009 at 7:54 AM, Stephen Nelson-Smith
<sanelson at gmail.com> wrote:
> So, following Kent and Alan's advice, I've preprocessed my data, and
> have code that produces 6 LogFile iterator objects:
>
>>>> import magpie
>>>> magpie.logs[1]
>
>>>> for timestamp, entry in itertools.islice(magpie.logs[1], 3):
> ...   print timestamp, entry
> ...

> This is great.
>
> So I have a list of 6 of these iterator objects.
>
> Kent mentioned feeding them into an iterator merger.  I've got the
> iterator merger in place too:
>
>>>> from imerge import imerge
>>>> imerge
> <function imerge at 0x2b8235df6050>
>>>> imerge([1,3,4],[2,7])
> <generator object at 0x2b8235debf38>
>>>> list(imerge([1,3,4],[2,7]))
> [1, 2, 3, 4, 7]
>
> What I'm trying to work out is how to feed the data I have - 6 streams
> of timestamp, entry into imerge.

merged = imerge(*magpie.logs)

for timestamp, entry in itertools.islice(merged, 3):
   print timestamp, entry

Kent


More information about the Tutor mailing list