首页 > 解决方案 > 如何找到数组中差值大于“n”的相邻对的数量?

问题描述

我想知道如何找到数组中相邻对的数量,它们在 python 中的差异大于 n

例如,让我们以数组 a 为例,

a=[1, 3, 6, 7, 15]

如果n=2 那么答案是2

这是因为6-3 > 215-7 > 3

标签: pythonarrays

解决方案


您可以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]

推荐阅读