リストのスマートプリントが必要です。例えば:
a=[2,2,2,1,1,1,1,1,1,1]
次のような印刷結果が必要です。2*3, 1*7
好きじゃない:2,2,2,1,1,1,1,1,1
collections.Counter
順序が重要でない場合は、次を使用できます。
>>> from collections import Counter
>>> a = [2,2,2,1,1,1,1,1,1,1]
>>> ",".join(("%s*%s" % (item, count) for item, count in Counter(a).iteritems()))
'1*7,2*3'
単純な RLE (ランレングス エンコーディング) が必要な場合は、次のようにできます。
from itertools import groupby
return [(k, sum(1 for _ in g)) for k, g in groupby(a)]
タプルのリストを取得します。各タプルの最初の項目は元の配列の番号で、2 番目の項目はグループの長さです。