Python 列表中元素的布尔语句

Python 列表中元素的布尔语句,python,python-3.x,boolean,Python,Python 3.x,Boolean,假设我有一个按指数降序排列的多项式系数列表(如果len(list)==x,那么指数的范围是从整数x-1到0)。我想删除上述列表中的“小”元素,意思是abs(element)>0和abs(element)

假设我有一个按指数降序排列的多项式系数列表(如果
len(list)==x
,那么指数的范围是从整数x-1到0)。我想删除上述列表中的“小”元素,意思是
abs(element)>0和abs(element)<.000001
,但保留多项式的非“小”指数

在Python3.0中,我到底如何做到这一点

以下是我在上下文中想要的示例:

my_list=[3.000000000000000e-12,4.9999999948,4.00000000000002,-0.00004253550000e-15,-0.2000000000]
指数=[4,3,2,1,0]#如前所述'
``>>>新列表=[4.999999948,4.00000000000002,-0.2000000000000000]
``>>>nexexp=[3,2,0]

因此,多项式的形式为 4.999999999999 48*x^3+4.00000000000002*x^2-0.2000000000000000


任何建议都会很有帮助

保留较大的元素,而不是删除较小的元素:

newlist,newexp = zip(*[(x,e) for x,e in zip(my_list,exponents) if abs(x) > 1e-6])
您也可以使用过滤器:

newlist,newexp = zip(*filter(lambda x: abs(x[0]) > 1e-6, zip(my_list,exponents))))

绝妙的解决方案!我在代码中遗漏了一件事:初始列表中的每个指数实际上都是多项式的系数,按指数的降序排列。我还需要找到一种方法,只包括系数的指数,而不是“小的”。有什么方法吗?在上面的例子中,期望的指数列表是[3,2,0]。谢谢要得到另一个答案,你必须问另一个问题,或者至少改变原来的问题。刚刚修改完我的问题。现在应该是固定的。
zip()
两个列表,然后按照上面的建议进行筛选。我对zip()和filter()非常缺乏经验。你能不能结合我的情况解释一下?