['a','a','b','c','c','c']
到
[2, 2, 1, 3, 3, 3]
和
{'a': 2, 'c': 3, 'b': 1}
答案 0 :(得分:37)
>>> x=['a','a','b','c','c','c']
>>> map(x.count,x)
[2, 2, 1, 3, 3, 3]
>>> dict(zip(x,map(x.count,x)))
{'a': 2, 'c': 3, 'b': 1}
>>>
答案 1 :(得分:11)
此编码应该给出结果:
from collections import defaultdict
myDict = defaultdict(int)
for x in mylist:
myDict[x] += 1
当然如果你想在结果中输入列表,只需从dict(mydict.values())中获取值。
答案 2 :(得分:6)
使用set
仅对每个项目进行一次计数,使用列表方法count
对它们进行计数,将它们存储在dict
中,并将项目作为键,且出现次数为值。
l=["a","a","b","c","c","c"]
d={}
for i in set(l):
d[i] = l.count(i)
print d
输出:
{'a': 2, 'c': 3, 'b': 1}
答案 3 :(得分:5)
在Python≥2.7或≥3.1上,我们有一个内置数据结构collections.Counter来计算列表
>>> l = ['a','a','b','c','c','c']
>>> Counter(l)
Counter({'c': 3, 'a': 2, 'b': 1})
之后很容易建立[2, 2, 1, 3, 3, 3]
。
>>> c = _
>>> [c[i] for i in l] # or map(c.__getitem__, l)
[2, 2, 1, 3, 3, 3]
答案 4 :(得分:4)
a = ['a','a','b','c','c','c']
b = [a.count(x) for x in a]
c = dict(zip(a, b))
我已经包含了Wim的回答。好主意
答案 5 :(得分:3)
第二个可能只是
dict(zip(['a','a','b','c','c','c'], [2, 2, 1, 3, 3, 3]))
答案 6 :(得分:2)
第一个:
l = ['a','a','b','c','c','c']
地图(l.count,l)的
答案 7 :(得分:1)
d=defaultdict(int)
for i in list_to_be_counted: d[i]+=1
l = [d[i] for i in list_to_be_counted]