辨識清單中的連續數字
任務是將清單分為連續數字群組。每組應僅包含連續的數字。輸出必須保留單個數字,而不是將它們組合成範圍。
解決方案:
在Python 中,您可以使用內建的groupby 函數和自訂鍵達到this:
from itertools import groupby from operator import itemgetter ranges = [] for key, group in groupby(enumerate(data), lambda (index, item): index - item): group = map(itemgetter(1), group) if len(group) > 1: ranges.append(xrange(group[0], group[-1])) else: ranges.append(group[0])
解釋:
範例輸出:
data = [2, 3, 4, 5, 12, 13, 14, 15, 16, 17, 20] ranges = [xrange(2, 5), xrange(12, 17), 20]
以上是如何識別 Python 清單中的連續數字並對其進行分組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!