辨識連續的數字群組
在Python中,辨識清單中的連續數位群組可以使用groupby( ) 功能。它的工作原理如下:
itertools.groupby() 函數
groupby() 函數根據關鍵函數將可迭代物件的元素分組。在本例中,我們定義一個關鍵函數來計算元素的索引與其值之間的差。連續的數字將具有相同的鍵,從而進行分組。
程式碼實作:
考慮範例清單 [2, 3, 4, 5, 12, 13 、14、15、16、17、20]。下面的程式碼利用groupby() 來辨識連續的數字群組:
理解關鍵函數:
lambda 函數(lambda (i, x): i - x) 計算元素索引(i) 和值(x) 之間的差。這種差異使我們能夠將連續的數字分組在一起。例如,對於數字 2,差值為 0,對於數字 12,差值為 10。
處理分組元素:
對於每個key(差異),groupby() 產生一個包含對應分組元素的生成器物件 (g)。我們使用 map() 和 itemgetter() 將此生成器轉換為列表,以僅提取元素值。
過濾與附加結果:
我們檢查分組的元素判斷是否大於1,表示連續的數字。如果是這樣,我們將群組中第一個和最後一個元素的元組附加到範圍清單中。對於單一數字,我們附加數字本身。
輸出:
範圍清單將包含以下連續數字群組:
以上是如何辨識Python清單中的連續數字組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!