Also I don't think that you need the calls to `list()` here as they just waste memory.  `zip()` accepts iterator objects.