これは、 Python ではなく R を除いて、これと重複する質問です。
リスト内の連続した (連続していると呼ぶ人もいます) 整数のグループを識別したいと思います。ここで、重複したエントリは同じ範囲内に存在するものとして扱われます。したがって:
myfunc(c(2, 3, 4, 4, 5, 12, 13, 14, 15, 16, 17, 17, 20))
戻り値:
min max
2 5
12 17
20 20
どの出力形式でも問題ありませんが。私の現在の強引な for-loop メソッドはかなり遅いです。
(Pythonの回答を簡単に再解釈できたなら申し訳ありませんが、私は愚かです!)