首页 > 解决方案 > 过滤掉特定的衍生品

问题描述

我已经生成了几个函数。

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 

标签: pythonfunctionmathtuples

解决方案


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

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


推荐阅读