您可以使用itertools.groupby: from itertools import groupbydef summary_of_list(lst): return [(k, sum(1 for _ in g)) for k, g in groupby(lst)]print(summary_of_list(['a','b','a','a'])) # [('a', 1), ('b', 1), ('a', 2)]print(summary_of_list(['a','a','b','b','b','d'])) # [('a', 2), ('b', 3), ('d', 1)] (我相信您對['a','a','b','b','b','d']的預期輸出[('a',2), ('b',1), ('d',1)]有一個typo.)