在python列表中查找彼此紧跟的类似项

在python列表中查找彼此紧跟的类似项,python,list,Python,List,如何在列表中找到彼此紧随其后的相似项。例如: list = ["A","B", "B", "C", "A", "A" ] #output: A-1, B-1, B-2, C-1, A-1, A-2 代码说明: 取一个变量stri跟踪该字母,并使用计数器获取计数 如果stri=i分配新的stri,否则增加计数器 代码说明: 取一个变量stri跟踪该字母,并使用计数器获取计数 如果stri=i分配新的stri,否则增加计数器 代码说明: 取一个变量stri跟踪该字母,并使用计数器获取计数 如果

如何在列表中找到彼此紧随其后的相似项。例如:

list = ["A","B", "B", "C", "A", "A" ]

#output:

A-1, B-1, B-2, C-1, A-1, A-2
代码说明:

  • 取一个变量
    stri
    跟踪该字母,并使用计数器获取计数
  • 如果
    stri=i
    分配新的stri,否则增加计数器
  • 代码说明:

  • 取一个变量
    stri
    跟踪该字母,并使用计数器获取计数
  • 如果
    stri=i
    分配新的stri,否则增加计数器
  • 代码说明:

  • 取一个变量
    stri
    跟踪该字母,并使用计数器获取计数
  • 如果
    stri=i
    分配新的stri,否则增加计数器
  • 代码说明:

  • 取一个变量
    stri
    跟踪该字母,并使用计数器获取计数
  • 如果
    stri=i
    分配新的stri,否则增加计数器
  • 听起来像是一份工作:

    如果需要字符串作为输出,请使用
    str.join

    >>> ", ".join('{}-{}'.format(x, i) for k, g in groupby(lst) for i, x in enumerate(g, 1))
    'A-1, B-1, B-2, C-1, A-1, A-2'
    
    groupby
    所做的是,它按值对项目进行分组(如果我们提供了键函数,也可以使用键函数),然后我们在每个组上循环使用,以获取索引和项目。

    听起来像是一项用于:

    如果需要字符串作为输出,请使用
    str.join

    >>> ", ".join('{}-{}'.format(x, i) for k, g in groupby(lst) for i, x in enumerate(g, 1))
    'A-1, B-1, B-2, C-1, A-1, A-2'
    
    groupby
    所做的是,它按值对项目进行分组(如果我们提供了键函数,也可以使用键函数),然后我们在每个组上循环使用,以获取索引和项目。

    听起来像是一项用于:

    如果需要字符串作为输出,请使用
    str.join

    >>> ", ".join('{}-{}'.format(x, i) for k, g in groupby(lst) for i, x in enumerate(g, 1))
    'A-1, B-1, B-2, C-1, A-1, A-2'
    
    groupby
    所做的是,它按值对项目进行分组(如果我们提供了键函数,也可以使用键函数),然后我们在每个组上循环使用,以获取索引和项目。

    听起来像是一项用于:

    如果需要字符串作为输出,请使用
    str.join

    >>> ", ".join('{}-{}'.format(x, i) for k, g in groupby(lst) for i, x in enumerate(g, 1))
    'A-1, B-1, B-2, C-1, A-1, A-2'
    

    groupby
    所做的是,它按值对项目进行分组(或者如果我们提供了键函数,则使用键函数),然后我们在每个组上循环,以获取索引和项目。

    第二个a是a-2还是a-1?什么是模式是的,第一个a是a-1,第二个a是a-2,第二个a是a-2还是a-1?什么是模式是的,第一个a是a-1,第二个a是a-2,第二个a是a-2还是a-1?什么是模式是的,第一个a是a-1,第二个a是a-2,第二个a是a-2还是a-1?什么是模式是的,第一个a是a-1,第二个a是a-2+1很好的答案!做一些解释,以便OP和其他用户可以learn@MitulShah,谢谢你。例如,如果我想使用字符串而不是索引,该怎么办<代码>一秒一秒。有没有更好的方法来代替拆分每个项目并用
    第一个
    替换
    1
    ,用
    第二个
    +1替换
    2
    ,这是一个很好的答案!做一些解释,以便OP和其他用户可以learn@MitulShah,谢谢你。例如,如果我想使用字符串而不是索引,该怎么办<代码>一秒一秒。有没有更好的方法来代替拆分每个项目并用
    第一个
    替换
    1
    ,用
    第二个
    +1替换
    2
    ,这是一个很好的答案!做一些解释,以便OP和其他用户可以learn@MitulShah,谢谢你。例如,如果我想使用字符串而不是索引,该怎么办<代码>一秒一秒。有没有更好的方法来代替拆分每个项目并用
    第一个
    替换
    1
    ,用
    第二个
    +1替换
    2
    ,这是一个很好的答案!做一些解释,以便OP和其他用户可以learn@MitulShah,谢谢你。例如,如果我想使用字符串而不是索引,该怎么办<代码>一秒一秒。是否有更好的方法来代替拆分每个项目并用
    first
    替换
    1
    ,用
    second
    替换
    2