Home > Back-end >  Python Error 'list' object has no attribute 'is_Number'
Python Error 'list' object has no attribute 'is_Number'

Time:10-17

I am having some issues with my python code, I am using sympy and would like to create a Lambda function that takes as input a list of real numbers [a1,a2,...,an] and return a list of real numbers [b1,b2,...,bn] where bi=cos(ai) sin(ai). iε[1, 2, ..., n] I am running into an attribute error, however, which is

AttributeError: 'list' object has no attribute 'is_Number'

Here is my code (I am quite new and know it is not the best):

import sympy

# defining symbol 'x'
x = sympy.symbols('x')

# defining a lambda function that takes a list of values and returns the
# result of applying the formula cos(x) sin(x) for each input value provided
f = sympy.Lambda(x, sympy.cos(x)   sympy.sin(x))

# testing by creating a list
input_list = [-1, -0.5, 0, 0.5, 1]
# calling f method to fetch the results of applying cos() sin() for each value in input_list
output_list = f(input_list)

# printing both lists
print(input_list)
print(output_list)

CodePudding user response:

In your case f doesn't take a list but just a value x, so in order to get your output, you need to do this...

output_list = [sympy.N(f(x)) for x in input_list]
print(output_list)

This will output following for your input

[-0.301168678939757, 0.398157023286170, 1.00000000000000, 1.35700810049458, 1.38177329067604]
  • Related