define function on two sets

asked 2017-11-10 09:53:26 +0100

this post is marked as community wiki

This post is a wiki. Anyone with karma >750 is welcome to improve it.

Hi. I have two sets: X, Y. I want to define a function

F : X ->Y

and I have the values of f(x). I searched the net but found nothing. thanks.

edit retag flag offensive close merge delete

Comments

Your question is not very clear to me. I suppose that $X$ and $Y$ are finite sets. If you know a map from $X$ to $Y$ and you want to define it in SageMath, you may define a dictionary with keys $X$ and values $Y$ : define d = dict() and then d[x] = y for all pairs $(x,y)$ such that $y = f(x)$. If on the other hand you have $f$ defined in some way, such as a dictionary or something similar, and you want it truly as a function, you may write (I use the dictionary, known globally):

def f(x):
    if x in d:
        return d[x]
    raise ValueError("{} is not in the domain of f".format(x))
B r u n o gravatar imageB r u n o ( 2017-11-10 10:57:53 +0100 )edit

Could you please provide the sets and the function you want to deal with in Sage ?

tmonteil gravatar imagetmonteil ( 2017-11-10 11:41:23 +0100 )edit