我正在做一个小程序,计算一个字符出现在列表中的次数,我有一个问题,“可以用连续的数字来做到吗?”。 我现在有以下代码:
def function(list):
final_list = []
for element in set(list):
final_list.append([element, list.count(element)])
return final_list
答案 0 :(得分:3)
对于简单的解决方案,您可以使用itertools.groupby
:
from itertools import groupby
l = [1, 1, 1, 2, 2, 3, 4, 4, 1, 1, 1]
[[k,len(list(v))] for k,v in groupby(l)]
# [[1, 3], [2, 2], [3, 1], [4, 2], [1, 3]]