2024-04-26 06:03:48 发布
网友
我需要在列表中找到元素的频率
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]
在Python2.7(或更新版本)中,可以使用^{}:
import collections a = [1,1,1,1,2,2,2,2,3,3,4,5,5] counter=collections.Counter(a) print(counter) # Counter({1: 4, 2: 4, 3: 2, 5: 2, 4: 1}) print(counter.values()) # [4, 4, 2, 1, 2] print(counter.keys()) # [1, 2, 3, 4, 5] print(counter.most_common(3)) # [(1, 4), (2, 4), (3, 2)]
如果您使用的是Python2.6或更早版本,可以下载它here。
Python 2.7+引入了字典理解。从列表中构建字典将使您获得计数并消除重复项。
>>> a = [1,1,1,1,2,2,2,2,3,3,4,5,5] >>> d = {x:a.count(x) for x in a} >>> d {1: 4, 2: 4, 3: 2, 4: 1, 5: 2} >>> a, b = d.keys(), d.values() >>> a [1, 2, 3, 4, 5] >>> b [4, 4, 2, 1, 2]
由于列表是有序的,因此您可以执行以下操作:
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]
在Python2.7(或更新版本)中,可以使用^{} :
如果您使用的是Python2.6或更早版本,可以下载它here。
Python 2.7+引入了字典理解。从列表中构建字典将使您获得计数并消除重复项。
由于列表是有序的,因此您可以执行以下操作:
输出:
相关问题 更多 >
编程相关推荐