首页 > 解决方案 > 检查列表上的条件并准确找到违反条件的元素数量

问题描述

我有一个如下列表:

A = [[-1 - 2*1j, -1 + 2*1j], [-5, -4], [7 - 9*1j, 7 + 9*1j], [9]]

我想检查所有元素是否都具有负实部。在这种情况下,最后两个元素具有正实部。

如何识别违反条件的元素的数量?在这种情况下,我想知道A[2]A [3]违反条件。

标签: pythonlistconditional-statements

解决方案


假设您有一个函数p来检查对象上的条件是真还是假(也称为谓词),要查找列表L违反条件​​的元素,您可以使用:

list(filter(not(p),L))

让我们把它应用到一个例子中:

zs = [1 + 2j,5-3j,2,4j]

zs 是复数列表,顺便说一下,在 python 中,复数写为a + bj

print(list(filter(lambda z: z.real >= 0,zs)))

这将打印 zs 中具有正实部的元素。

PS:我们使用 lambda 来定义匿名函数,为了让代码更紧凑,你可以用传统的方式定义一个函数,并把它的名字传给过滤器。


推荐阅读