def is_lesser(a, b):
    """
    Verify that an item *a* is <= then an item *b*
    
    :param a: An item
    :param b: Another item
    :return: True or False
    """

    if type(a) != type(b):
        return False

    if isinstance(a, str) and isinstance(b, str):
        return a == b
    elif isinstance(a, bool) and isinstance(b, bool):
        return a == b
    elif isinstance(a, list) and isinstance(b, list):
        for element in a:
            flag = 0
            for e in b:
                if is_lesser(element, e):
                    flag = 1
                    break
            if not flag:
                return False
        return True
    elif isinstance(a, dict) and isinstance(b, dict):
        if is_lesser(list(a.keys()), list(b.keys())):
            for key, val in a.items():
                if not is_lesser(val, b[key]):
                    return False
            return True
        return False
    elif isinstance(a, int) and isinstance(b, int):
        return a <= b
    elif isinstance(a, float) and isinstance(b, float):
        return a <= b

    return False
def is_lesser(a, b):
    """
    Verify that an item *a* is <= then an item *b*
    
    :param a: An item
    :param b: Another item
    :return: True or False
    """

    if type(a) != type(b):
        return False

    if isinstance(a, str) and isinstance(b, str):
        return a == b
    elif isinstance(a, bool) and isinstance(b, bool):
        return a == b
    elif isinstance(a, list) and isinstance(b, list):
        for element in a:
            flag = 0
            for e in b:
                if is_lesser(element, e):
                    flag = 1
                    break
            if not flag:
                return False
        return True
    elif isinstance(a, dict) and isinstance(b, dict):
        if is_lesser(list(a.keys()), list(b.keys())):
            for key, val in a.items():
                if not is_lesser(val, b[key]):
                    return False
            return True
        return False
    elif isinstance(a, int) and isinstance(b, int):
        return a <= b
    elif isinstance(a, float) and isinstance(b, float):
        return a <= b

    return False
def is_lesser ( a , b ) : if type ( a ) != type ( b ) : return False if isinstance ( a , str ) and isinstance ( b , str ) : return a == b elif isinstance ( a , bool ) and isinstance ( b , bool ) : return a == b elif isinstance ( a , list ) and isinstance ( b , list ) : for element in a : flag = 0 for e in b : if is_lesser ( element , e ) : flag = 1 break if not flag : return False return True elif isinstance ( a , dict ) and isinstance ( b , dict ) : if is_lesser ( list ( a . keys ( ) ) , list ( b . keys ( ) ) ) : for key , val in a . items ( ) : if not is_lesser ( val , b [ key ] ) : return False return True return False elif isinstance ( a , int ) and isinstance ( b , int ) : return a <= b elif isinstance ( a , float ) and isinstance ( b , float ) : return a <= b return False
Verify that an item *a* is <= then an item *b*
    
    :param a: An item
    :param b: Another item
    :return: True or False
Verify that an item * a * is < = then an item * b * : param a : An item : param b : Another item : return : True or False