1
L = [A、B、B、C、C、C]のようなリストがあります L = [A、B-1、B- 2、C-1、C-2、C-3] すべての重複は、同じ順序を維持しながら実行番号を持つ必要がありますpythonリスト重複する値を特定して代入する
L = [A、B、B、C、C、C]のようなリストがあります L = [A、B-1、B- 2、C-1、C-2、C-3] すべての重複は、同じ順序を維持しながら実行番号を持つ必要がありますpythonリスト重複する値を特定して代入する
itertools.groupby
を使用して要素の「実行」を検索し、そこから:
import itertools
L = [A,B,B,C,C,C]
answer = []
for _k, group in itertools.groupby(L):
group = list(group)
if len(group) == 1:
answer.extend(group)
continue
answer.extend(("{}-{}".format(e,i) for i,e in enumerate(group, 1)))