Python 2.7中用户定义函数中的数学函数

Python 2.7中用户定义函数中的数学函数,python,python-2.7,Python,Python 2.7,我正在尝试编写一个函数,它接受整数列表作为一个参数,接受一个简单的数学函数作为第二个参数。然后我想对整数运行数学函数,并将结果放入第二个函数中。以下是我要寻找的内容的概要: def func(test_cases, function_of_n): #test_cases=[10, 50, 100], function_of_n can be n/10, n/20, sqrt(n), etc. for n in test_cases: a = function_of_n(n

我正在尝试编写一个函数,它接受整数列表作为一个参数,接受一个简单的数学函数作为第二个参数。然后我想对整数运行数学函数,并将结果放入第二个函数中。以下是我要寻找的内容的概要:

def func(test_cases, function_of_n): #test_cases=[10, 50, 100], function_of_n can be n/10, n/20, sqrt(n), etc.
    for n in test_cases:
        a = function_of_n(n)
        second_function(n, a)
我的问题是我不知道如何输入简单的数学函数。我发现解决这个问题的一种方法是制作许多不同的函数,如下所示:

def func1(test_cases): #test_cases=[10, 50, 100], function_of_n can be n/10, n/20, sqrt(n), etc.
    for n in test_cases:
        a = n/10
        second_function(n, a)

def func2(test_cases): #test_cases=[10, 50, 100], function_of_n can be n/10, n/20, sqrt(n), etc.
    for n in test_cases:
        a = n**2
        second_function(n, a)

def func3(test_cases, function_of_n): #test_cases=[10, 50, 100], function_of_n can be n/10, n/20, sqrt(n), etc.
    for n in test_cases:
        a = numpy.sqrt(n)
        second_function(n, a)
这是可行的,但我猜有一种更好的方法来实现这一点,而不是复制和粘贴代码,每次都做一点小小的更改。

什么

func(test_cases, lambda x: x / 10)
func(test_cases, lambda x: x ** 2)
func(test_cases, numpy.sqrt)
什么


可以将函数作为参数传递,就像传递变量一样:

def second_function(x, y):
    print x, y

def multi(x):
    return x*10

def func(test_cases, function_of_n):
    for n in test_cases:
        a = function_of_n(n)
        second_function(n, a)


func([1,2,3,4], multi)

我还建议签出

您可以将函数作为参数传递,就像传递变量一样:

def second_function(x, y):
    print x, y

def multi(x):
    return x*10

def func(test_cases, function_of_n):
    for n in test_cases:
        a = function_of_n(n)
        second_function(n, a)


func([1,2,3,4], multi)
我还建议退房