Counting consecutive duplicates of strings from a list

后端 未结 1 649
傲寒
傲寒 2021-01-17 08:04

I have a Python list of strings such that,

Input:

li = [\'aaa\',\'bbb\',\'aaa\',\'abb\',\'abb\',\'bbb\',\'bbb\',\'bbb\',\'aaa\',\'aaa\']
相关标签:
1条回答
  • 2021-01-17 08:27

    Use itertools.groupby:

    from itertools import groupby
    li = ['aaa','bbb','aaa','abb','abb','bbb','bbb','bbb','aaa','aaa']
    
    a = [[i, sum(1 for i in group)] for i, group in groupby(li)]
    print(a)
    [['aaa', 1], ['bbb', 1], ['aaa', 1], ['abb', 2], ['bbb', 3], ['aaa', 2]]
    

    Thank you @user3483203 for improvement:

    a = [[i, len([*group])] for i, group in groupby(li)]
    
    0 讨论(0)
提交回复
热议问题