我需要在 无序 列表中找到元素的频率
a = [1,1,1,1,2,2,2,2,3,3,4,5,5]
输出->
b = [4,4,2,1,2]
我也想从
a = [1,2,3,4,5]
注意:您应该在使用之前对列表进行排序groupby。
groupby
如果列表是有序列表,您可以使用groupbyfrom package。itertools
itertools
a = [1,1,1,1,2,2,2,2,3,3,4,5,5] from itertools import groupby [len(list(group)) for key, group in groupby(a)]
输出:
[4, 4, 2, 1, 2]
更新 :请注意,排序需要 O(n log(n)) 时间。