Python:将此列表转换为字典

use*_*652 2 python formatting dictionary list

我遇到了问题,不知道如何在python中编码.

我有一个 list[10, 10, 10, 20, 20, 20, 30]

我想要它在这样的字典中

{"10": 1, "20":  3, "30" : 1}
Run Code Online (Sandbox Code Playgroud)

我怎么能实现这个目标?

Gle*_*ard 15

from collections import Counter
a = [10, 10, 10, 20, 20, 20, 30]
c = Counter(a)
# Counter({10: 3, 20: 3, 30: 1})
Run Code Online (Sandbox Code Playgroud)

如果您真的想将键转换为字符串,那么这是一个单独的步骤:

dict((str(k), v) for k, v in c.iteritems())
Run Code Online (Sandbox Code Playgroud)

这个类是Python 2.7的新功能; 对于早期版本,请使用此实现:

http://code.activestate.com/recipes/576611/


编辑:删除此处,因为SO不会让我将代码粘贴到评论中,

from collections import defaultdict
def count(it):
    d = defaultdict(int)
    for j in it:
        d[j] += 1
    return d
Run Code Online (Sandbox Code Playgroud)