def eqzip(*args):
    """Zip but raises error if lengths don't match.

  Args:
    *args: list of lists or tuples
  Returns:
    list: the result of zip
  Raises:
    ValueError: when the lengths don't match
  """

    sizes = [len(x) for x in args]
    if not all([sizes[0] == x for x in sizes]):
        raise ValueError("Lists are of different sizes. \n %s" % str(sizes))
    return zip(*args)