Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
List python列表副本标识并分配一个值_List_Python 3.x_Duplicates - Fatal编程技术网

List python列表副本标识并分配一个值

List python列表副本标识并分配一个值,list,python-3.x,duplicates,List,Python 3.x,Duplicates,我有一个类似L=[a,B,B,C,C,C]的列表 我需要的结果列表是L=[A,B-1,B-2,C-1,C-2,C-3] i、 e所有副本都需要有一个运行编号,同时保持顺序不变您可以使用itertools.groupby查找元素的“运行”并从中构建新列表: import itertools L = [A,B,B,C,C,C] answer = [] for _k, group in itertools.groupby(L): group = list(group) if len(

我有一个类似L=[a,B,B,C,C,C]的列表 我需要的结果列表是L=[A,B-1,B-2,C-1,C-2,C-3]
i、 e所有副本都需要有一个运行编号,同时保持顺序不变

您可以使用
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)))