doufo.List.zip: zip with another `List` object ot `tuple List` object
        Args:  
            `self`:  
            `xs` (`List[B]`): anther `List` object
        Returns:  
            return (`type`):description  
        Raises:  
            If the length of input and current object differs, warning!

def zip(self, xs: 'List[B]') -> 'List[Tuple[T, B]]':
        """doufo.List.zip: zip with another `List` object ot `tuple List` object
        Args:  
            `self`:  
            `xs` (`List[B]`): anther `List` object
        Returns:  
            return (`type`):description  
        Raises:  
            If the length of input and current object differs, warning!
        """
        if len(self) == len(xs):
            return List([(x, y) for x, y in zip(self, xs)])
        else:
            print(f"Warning: The two inputs have different lengths: {len(self)} and {len(xs)}")
            return List([(x, y) for x, y in zip(self, xs)])