python - 检查列表上的条件并准确找到违反条件的元素数量
问题描述
我有一个如下列表:
A = [[-1 - 2*1j, -1 + 2*1j], [-5, -4], [7 - 9*1j, 7 + 9*1j], [9]]
我想检查所有元素是否都具有负实部。在这种情况下,最后两个元素具有正实部。
如何识别违反条件的元素的数量?在这种情况下,我想知道A[2]
并A [3]
违反条件。
解决方案
假设您有一个函数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 来定义匿名函数,为了让代码更紧凑,你可以用传统的方式定义一个函数,并把它的名字传给过滤器。
推荐阅读
- reactjs - React @material-ui/core - v4.11.0 - “createMuiTheme 函数被重命名为 createTheme” 控制台错误
- mongodb - 如何使用 go mongo 驱动程序获取和检查 mongodb 索引选项
- ethereum - 如何将收获代币添加到农业合同中?
- javascript - 带有 proto loader 问题的 GRPC 连接设置
- postgresql - 使用 SSH 堡垒将 dbt 连接到 Postgres
- entity-framework - 试图在 asp.net mvc5 中创建一个电子商务网站
- javascript - Postman中获取二进制数据的响应成功,但在控制台中返回未定义
- grpc - GRPC 应用程序的身份验证和授权
- excel - VBA 代码:提醒电子邮件不起作用,也没有给出任何错误?
- javascript - 在树视图控件asp.net中搜索无限的子节点和节点