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)))