2016-05-30 65 views
2

我试图在数组中存储多个函数值,以便在python中绘制一个函数。在一个字符串/数组(Python)中存储多个函数值

对于该示例,让我们定义该函数是Y = X^2并且想要的参数值是1,2和3,我试图代码如下:

def ExampleFunction (x): 
     return x**2 
ArgumentValues=range(3)  
FunctionValues=ExampleFunction(ArgumentValues) 

不幸的是运行的代码导致一个错误:

TypeError: unsupported operand type(s) for ** or pow(): 'range' and 'int' 

我怎么能返回许多函数值到Python中的字符串/数组?因此,我想在 “功能价值” 采取以下形式:

1,4,9 

回答

2

使用列表理解:

results = [ExampleFunction(x) for x in range(3)] 
1

此代码答案:

def ExampleFunction (x): 
    list_fn = [] 
    for item in x : 
     list_fn.append(item**2) 
    return list_fn 
ArgumentValues=range(3)  
FunctionValues=ExampleFunction(ArgumentValues) 

或本规范:

def ExampleFunction (x): 
    return x**2 
ArgumentValues=range(3) 
FunctionValues= [ExampleFunction(x) for x in ArgumentValues] 
+0

您的功能仍然只返回1个值。 –

+0

谢谢M.克鲁格福德先生,我纠正了它 –

1

这是完美的用法r map

map(lambda x: x**2, range(3)) 
# [0, 1, 4] 

在Python 3.X,map将返回map object,而不是一个列表,所以如果你想重新使用它,你需要明确地将其转换为list

相关问题