如何在python中将列表转换为计数器对象

时间:2013-12-03 17:21:12

标签: python list counter

我有一个如下所示的列表:

myList = [('string1', 48), ('string2', 48), ('string3', 18)]

如何将其转换为计数器?我已经这样了:

newCounter = Counter(myList)

但我似乎仍然得到一份清单

2 个答案:

答案 0 :(得分:2)

你肯定没有得到一份清单。你没有得到你想要的计数器,因为Counter构造函数将计算它提供的迭代,而不是将其视为键值对列表,所以首先将列表转换为dict以解决这个问题:

counter = Counter(dict(myList))

如果你确定要获得一个列表,那么你还有一些我们看不到的错误。

答案 1 :(得分:1)

如果您打印newCounter,您将能够看到它已经是一个反对象:

Counter({('string3', 18): 1, ('string1', 48): 1, ('string2', 48): 1})

另请参阅newCounter的类型:

print type(newCounter)
<class 'collections.Counter'>