在Python列表中查找数量严格增加的组
有时我们可能需要评估列表中的元素是否严格递增。这意味着数字以1的间隔增加。在本文中,我们将了解如何在给定列表中找出严格增加的数字组。
直接比较
通过这种方法,我们逐渐增加每个数字的索引,并将其与列表中的先前数字进行比较。只要第二个数字比第一个大1,我们就会将这些数字附加到内部列表中。否则,该数字将成为外部列表的一部分。
示例
listA = [11, 12, 6, 7, 8, 12, 13,14]res = [[listA[0]]]
for i in range(1, len(listA)):
if listA[i - 1] + 1 == listA[i]:
res[-1].append(listA[i])
else:
res.append([listA[i]])
print(res)
输出结果
运行上面的代码给我们以下结果-
[(11, 12), (6, 7, 8), (12, 13, 14)]
使用itertools
在这种方法中,我们使用itertools及其函数来获取一组严格递增的数字。
示例
from itertools import groupby, cycledef groupincreasing(l):
inner_list = cycle(listA)
next(inner_list)
groups = groupby(l, key=lambda j: j + 1 == next(inner_list))
for k, v in groups:
if k:
yield tuple(v) + (next((next(groups)[1])),)
listA = [11, 12, 6, 7, 8, 12, 13,14]
print(list(groupincreasing(listA)))
输出结果
运行上面的代码给我们以下结果-
[(11, 12), (6, 7, 8), (12, 13, 14)]
以上是 在Python列表中查找数量严格增加的组 的全部内容, 来源链接: utcz.com/z/331550.html