过滤掉特定的导数

时间:2019-06-19 13:08:50

标签: python function math tuples

我已经生成了几个函数。

find_derivative只是简单地使用乘积规则取几个项的导数,并生成一个新方程。

所以如果我输入3x ^ 2 + 2x ^ 3

我得到6x + 6x ^ 2

在输出[[6,1),(6,2)]

但是我想在任何时候以输出以0开头的元组结束时都进行过滤

def find_derivative(function_terms):
    new_function = []
    for term in function_terms:
        new_term = find_term_derivative(term)
        new_function.append(new_term)
        filtered_list = list(filter(lambda x: x != 0, new_function))
    return filtered_list

输入[[3,2),(-11,0)]的预期结果 应该 [(6,1)] 但是此代码并未删除第二项[0,-1]

编辑:导数函数

def find_term_derivative(term): 
    x, y = term
    new_term = (x*y, y-1)
    return new_term 

1 个答案:

答案 0 :(得分:0)

您对过滤器有正确的想法,但请看一下您编写的lambda。您正在根据条件lambda x : x != 0进行过滤,该条件将检查列表中的元素是否不为零。

但是列表中的元素是元组,并且您要检查元组中只有第一个数字是否为零,因此您需要将条件更新为lambda x : x[0] != 0