「本当に1行で」追加
『2008-10-02 - プログラミング日記』さんが素晴らしいコードを書かれて嬉しくなったから1行にしてみた。
ほぼ1行
>|python|
from operator import itemgetter
from itertools import groupby
lst = [1,3,4,5,6,12,13,15]
print map(lambda x:[x[0], x[-1]] if len(x) > 1 else x[0], [map(itemgetter(1), g) for k, g in groupby(enumerate(lst), lambda (i,x):i-x)])
|
結果
[1, [3, 6], [12, 13], 15]
from〜のとこ目をつぶれば、ほぼ1行(・∀・)
本当に1行で
morchin さんにいただいたコメントにより(ありがとうございす)
lst = [1,3,4,5,6,12,13,15] print map(lambda x:[x[0], x[-1]] if len(x) > 1 else x[0], [map(__import__('operator').itemgetter(1), g) for k, g in __import__('itertools').groupby(enumerate(lst), lambda (i,x):i-x)])
1行でできました━━━━(゚∀゚)━━━━ッ!!
これまでの道程
nishioさんのお話は面白くてエクセレント!(・∀・)