['a','a','b','c','c','c']
Run Code Online (Sandbox Code Playgroud)
至
[2, 2, 1, 3, 3, 3]
Run Code Online (Sandbox Code Playgroud)
和
{'a': 2, 'c': 3, 'b': 1}
Run Code Online (Sandbox Code Playgroud)
YOU*_*YOU 38
>>> 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}
>>>
Run Code Online (Sandbox Code Playgroud)
Jue*_*gen 11
这个编码应该给出结果:
from collections import defaultdict
myDict = defaultdict(int)
for x in mylist:
myDict[x] += 1
Run Code Online (Sandbox Code Playgroud)
当然,如果你想在结果之间输入列表,只需从dict(mydict.values())中获取值.
使用a set只对每个项目进行一次计数,使用list方法count对它们进行计数,将它们存储在a中dict,并将项目作为键,并将出现值设置为值.
l=["a","a","b","c","c","c"]
d={}
for i in set(l):
d[i] = l.count(i)
print d
Run Code Online (Sandbox Code Playgroud)
输出:
{'a': 2, 'c': 3, 'b': 1}
Run Code Online (Sandbox Code Playgroud)
a = ['a','a','b','c','c','c']
b = [a.count(x) for x in a]
c = dict(zip(a, b))
Run Code Online (Sandbox Code Playgroud)
我已经包含了 Wim 的答案。好想法
在Python≥2.7或≥3.1上,我们有一个内置的数据结构集合.计数器来计算一个列表
>>> l = ['a','a','b','c','c','c']
>>> Counter(l)
Counter({'c': 3, 'a': 2, 'b': 1})
Run Code Online (Sandbox Code Playgroud)
[2, 2, 1, 3, 3, 3]之后很容易建立起来.
>>> c = _
>>> [c[i] for i in l] # or map(c.__getitem__, l)
[2, 2, 1, 3, 3, 3]
Run Code Online (Sandbox Code Playgroud)