在Python中评估函数

时间:2016-11-21 13:26:11

标签: python function eval

我必须做以下事情:

  

函数eval_f(f,xs),它取一个函数f = f(x)和一个值的列表xs,它们应该用作f的参数。函数eval_f应该在xs中的每个值x后面应用函数f,并返回函数值的列表fs。即对于输入参数xs = [x0,x1,x2,...,xn],函数eval_f(f,xs)应返回[f(x0),f(x1),f(x2),...,f (XN)。

import math


def eval_f(f, xs):

    x = []
    f = f(x)
    for i in range(len(xs)):
        f.append(f(x[i]))
    return f

eval_f(math.sqrt,[1,2,4,9]) 回溯(最近一次调用最后一次):

文件"",第1行,in     eval_f(math.sqrt,[1,2,4,9])

文件" C:/Users/Idoia/untitled2.py",第6行,在eval_f中     f = f(x)

TypeError:需要浮点数

2 个答案:

答案 0 :(得分:2)

  

对于输入参数xs = [x0,x1,x2,...,xn],函数eval_f(f,xs)应返回[f(x0),f(x1),f(x2),.. 。,f(xn)]。

您希望map列表中的f函数

如果使用Python3,

def eval_f(f, xs):
    return list(map(f, xs)) 

您可以删除list() for python2

答案 1 :(得分:1)

FOR /F "tokens=*" %%s IN ('dir /b /s "%MapDirectory%\%FullName%"') DO (set DesiredMapFilePath=%%s)

打印出来:

def test(x):
  return x*2

def eval_f(f, xs):
    ans = []
    for x in xs:
        ans.append(f(x))
    return ans

print(eval_f(test,[1,2,3,4,5]))