首頁 > 後端開發 > Python教學 > 如何辨識 Python 清單中的連續數位組?

如何辨識 Python 清單中的連續數位組?

Susan Sarandon
發布: 2024-12-30 01:52:08
原創
606 人瀏覽過

How Can I Identify Consecutive Number Groups in a Python List?

辨識清單中的連續數字群組

辨識清單中的連續數位群組是各種程式場景中出現的常見任務。

Python 的內建工具

幸運的是,Python 的內建函數和模組提供了優雅的這個問題的解決方案。一種方法利用 groupby() 函數和 lambda 表達式:

from itertools import groupby

data = [2, 3, 4, 5, 12, 13, 14, 15, 16, 17]
for k, g in groupby(enumerate(data), lambda (i, x): i - x):
    print(map(itemgetter(1), g))
登入後複製

此程式碼段根據索引和值之間的差異對連續數字進行分組,確保每個組中的元素是連續的。

如果想要的輸出是表示連續數字範圍的元組列表,可以進行以下修改:

ranges = []
for k, g in groupby(enumerate(data), lambda (i, x): i - x):
    group = map(itemgetter(1), g)
    ranges.append((group[0], group[-1]))
登入後複製

備用方法

或者,可以使用循環和列表理解來實現自定義解決方案:

ranges = []
for i in range(len(data)):
    if i == len(data) - 1 or data[i] + 1 != data[i + 1]:
        ranges.append((data[i], data[i]))
    else:
        start = i
        while i + 1 < len(data) and data[i] + 1 == data[i + 1]:
            i += 1
        ranges.append((data[start], data[i]))
登入後複製

此方法迭代列表,識別每個連續組的開始和結束索引,並將它們附加到範圍列表中。

以上是如何辨識 Python 清單中的連續數位組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板