【发布时间】:2013-11-12 17:52:03
【问题描述】:
我有以下清单:
pet = ['cat','dog','fish','cat','fish','fish']
我需要将它转换成这样的字典:
number_pets= {'cat':2, 'dog':1, 'fish':3}
我该怎么做?
【问题讨论】:
标签: python python-3.x dictionary
我有以下清单:
pet = ['cat','dog','fish','cat','fish','fish']
我需要将它转换成这样的字典:
number_pets= {'cat':2, 'dog':1, 'fish':3}
我该怎么做?
【问题讨论】:
标签: python python-3.x dictionary
正如@hcwhsa 所说,您可以使用collections.Counter。但是如果你想编写自己的类,你可以这样开始:
class Counter(object):
def __init__(self, list):
self.list = list
def count(self):
output = {}
for each in self.list:
if not each in output:
output[each] = 0
output[each]+=1
return output
>>> Counter(['cat', 'dog', 'fish', 'cat', 'fish', 'fish']).count()
>>> {'fish': 3, 'dog': 1, 'cat': 2}
【讨论】:
使用collections.Counter:
>>> from collections import Counter
>>> pet = ['cat','dog','fish','cat','fish','fish']
>>> Counter(pet)
Counter({'fish': 3, 'cat': 2, 'dog': 1})
【讨论】: