def __init__(self, clusters, n=0):
    'Constructs a cover with the given clusters.\n\n        @param clusters: the clusters in this cover, as a list or iterable.\n          Each cluster is specified by a list or tuple that contains the\n          IDs of the items in this cluster. IDs start from zero.\n\n        @param n: the total number of elements in the set that is covered\n          by this cover. If it is less than the number of unique elements\n          found in all the clusters, we will simply use the number of unique\n          elements, so it is safe to leave this at zero. You only have to\n          specify this parameter if there are some elements that are covered\n          by none of the clusters.\n        '
    self._clusters = [list(cluster) for cluster in clusters]
    try:
        self._n = max(((max(cluster) + 1) for cluster in self._clusters if cluster))
    except ValueError:
        self._n = 0
    self._n = max(n, self._n)
Constructs a cover with the given clusters.

@param clusters: the clusters in this cover, as a list or iterable.
  Each cluster is specified by a list or tuple that contains the
  IDs of the items in this cluster. IDs start from zero.

@param n: the total number of elements in the set that is covered
  by this cover. If it is less than the number of unique elements
  found in all the clusters, we will simply use the number of unique
  elements, so it is safe to leave this at zero. You only have to
  specify this parameter if there are some elements that are covered
  by none of the clusters.
def __init__(self, clusters, n=0):
    'Constructs a cover with the given clusters.\n\n        @param clusters: the clusters in this cover, as a list or iterable.\n          Each cluster is specified by a list or tuple that contains the\n          IDs of the items in this cluster. IDs start from zero.\n\n        @param n: the total number of elements in the set that is covered\n          by this cover. If it is less than the number of unique elements\n          found in all the clusters, we will simply use the number of unique\n          elements, so it is safe to leave this at zero. You only have to\n          specify this parameter if there are some elements that are covered\n          by none of the clusters.\n        '
    self._clusters = [list(cluster) for cluster in clusters]
    try:
        self._n = max(((max(cluster) + 1) for cluster in self._clusters if cluster))
    except ValueError:
        self._n = 0
    self._n = max(n, self._n)