Thanks to Python’s function definition facilities, you can collect your 
arguments as a list and use them as such in your function definition :

>>> from sympy import symbols
>>> X=symbols("x:5") ; X
(x0, x1, x2, x3, x4)
>>> def foo(*u): return "I got %d arguments."%len(u)
... 
>>> foo(X) # Call foo with the single argument X
'I got 1 arguments.'
>>> foo(*X) # Call fo with the LIST of arguments (x0,...,x4)
'I got 5 arguments.'

You can also have fixed arguments before the list argument :

>>> def bar(u, *v): return "u=%s, v=%s"%(u, v)
... 
>>> bar(*X)
'u=x0, v=(x1, x2, x3, x4)'

HTH,
​
Le vendredi 20 mai 2022 à 07:35:57 UTC+2, [email protected] a écrit :

> Hi,
> I am a new hand in sympy. I have some questions when I using it. Could you 
> please help me?
>
> When I use "x = symbols('x:(n+1)')" to claim (n+1) variables, after the 
> calculations, I can get the results represented by x0, x1, x2,...xn, i.e., 
> f(x0, x1, ..., xn), where n can change from time to time.
> Now, I have several sets of input data, and I want to know the results of 
> the calculated function, i.e., f(input), where each set of input data has n 
> elements.
> I am trying to convert the  f(x0, x1, ..., xn) by using lambdify. For 
> example, I can only do obj = lambdify(x, f(x[0], x[1], x[2], ..., x[n])) 
> rather than lambdify(x, f(x0, x1, ..., xn)).
> How can I use the previous calculated f(x0, x1, ..., xn) in lambdify 
> directly?
>
> In addition, when I calculate the result, I can only do obj(input[0], 
> input[1], ..., input[n]), can I read the input array directly, i.e., 
> obj(input)?
>
> Thanks for your time.
>  
> Best,
> Junjie
>  
>

-- 
You received this message because you are subscribed to the Google Groups 
"sympy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sympy/6c14390e-4ec2-4b67-9c5e-a8156abd8dban%40googlegroups.com.

Reply via email to