用 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, cycle def 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)]
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP