def intersect(self, enumerable, key=lambda x: x):
        """
        Returns enumerable that is the intersection between given enumerable
        and self
        :param enumerable: enumerable object
        :param key: key selector as lambda expression
        :return: new Enumerable object
        """
        if not isinstance(enumerable, Enumerable3):
            raise TypeError(
                u"enumerable parameter must be an instance of Enumerable")
        return self.join(enumerable, key, key).select(lambda x: x[0])
def intersect ( self , enumerable , key = lambda x : x ) : if not isinstance ( enumerable , Enumerable3 ) : raise TypeError ( u"enumerable parameter must be an instance of Enumerable" ) return self . join ( enumerable , key , key ) . select ( lambda x : x [ 0 ] )
Returns enumerable that is the intersection between given enumerable
        and self
        :param enumerable: enumerable object
        :param key: key selector as lambda expression
        :return: new Enumerable object