如何在python中将列表转换为字典

How to convert a list into a dictionary in python

本问题已经有最佳答案,请猛点这里访问。

我有以下列表:

1
pet = ['cat','dog','fish','cat','fish','fish']

我需要把它转换成这样的字典:

1
number_pets= {'cat':2, 'dog':1, 'fish':3}

我该怎么做?


使用collections.Counter

1
2
3
4
>>> from collections import Counter
>>> pet = ['cat','dog','fish','cat','fish','fish']
>>> Counter(pet)
Counter({'fish': 3, 'cat': 2, 'dog': 1})

正如@hcwhsa所说,您可以使用collections.Counter。但是如果你想写你自己的课程,你可以从如下开始:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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}