def select_sites( self, site_labels ):
        """
        Selects sites in the lattice with specified labels.

        Args:
            site_labels (List(Str)|Set(Str)|Str): Labels of sites to select.
                This can be a List [ 'A', 'B' ], a Set ( 'A', 'B' ), or a String 'A'.

        Returns:
            (List(Site)): List of sites with labels given by `site_labels`.
        """
        if type( site_labels ) in ( list, set ):
            selected_sites = [ s for s in self.sites if s.label in site_labels ]
        elif type( site_labels ) is str:
            selected_sites = [ s for s in self.sites if s.label is site_labels ]
        else:
            raise ValueError( str( site_labels ) )
        return selected_sites