python - 如何找到数组中差值大于“n”的相邻对的数量?
问题描述
我想知道如何找到数组中相邻对的数量,它们在 python 中的差异大于 n
例如,让我们以数组 a 为例,
a=[1, 3, 6, 7, 15]
如果n=2
那么答案是2
这是因为6-3 > 2
和15-7 > 3
解决方案
您可以zip
在列表理解中使用,并减去连续对以查看差异是什么:
sum(abs(i-j)>2 for i,j in zip(a[1:], a[:-1]))
对以上几点评论:
zip
将来自多个可迭代对象的元素聚合成元组。您可以使用它来生成相邻对的元组:
list(zip(a[1:], a[:-1]))
# [(3, 1), (6, 3), (7, 6), (15, 7)]
abs(i-j)>2
返回一个布尔值,指示是否满足条件。sum
然后将所有布尔值相加:
[abs(i-j)>2 for i,j in zip(a[1:], a[:-1])]
# [False, True, False, True]
推荐阅读
- smartcontracts - 弄清楚如何通过延迟发布、元数据未在 opensea 上验证来铸造 NFT
- reactjs - 使用 e.preventDefault() 响应提交表单
- sql - 如何从 BigQuery 查询结果创建所需的分区表字段?
- python - 在 Azure ml 中安装 python 包
- python - RuntimeError:在请求上下文 Flask 之外工作
- elasticsearch - 需要从 Elasticsearch 上的 AND、OR 过滤器升级为 ES7 的布尔查询
- amazon-web-services - AWS 许可证管理器:如何确定谁使用了权利?
- json - 如何使用 JSON 根据另一列的内容过滤共享点列表中的查找?
- wordpress - 在 Dokan 插件的供应商新订单电子邮件中隐藏自定义 Woocommerce 附加费
- sql - 将 STUFF + FOR XML 从 SQL 转换为 Snowflake