计算列表中的相同列表

时间:2016-06-08 16:00:52

标签: python list

list1 =[ ['9034968', 'ETH'], ['14160113', 'ETH'], ['9034968', 'ETH'], ['11111', 'NOT'], ['9555269', 'NOT'], ['15724032', 'ETH'], ['15481740', 'ETH'], ['15481757', 'ETH'], ['15481724', 'ETH'], ['10307528', 'ETH'], ['15481757', 'ETH'], ['15481724', 'ETH'], ['15481740', 'ETH'], ['15379365', 'ETH'], ['11111', 'NOT'], ['9555269', 'NOT'], ['15379365', 'ETH']

如何计算列表中的相同列表。例如这里: ['9034968', 'ETH']出现2次,['15481740', 'ETH']也是如此。我目前能够使用:

>>> for i in list1: 
      i, list1.count(i)

但这会返回重复的结果。

2 个答案:

答案 0 :(得分:3)

使用Counter

from collections import Counter

counter = Counter(tuple(i) for i in list1)

转换为tuple会使Counter

的商品可用

您可以执行以下操作:

counter.most_common(3) # get the 3 most common items

答案 1 :(得分:2)

您可以通过制作元素元组并将其转换为集合来获取列表中的唯一项目:

for i in set(map(tuple, list1)): 
    i, list1.count(i)

更好的是,使用collections.Counter(参见Moses Koledoye的回答)。