Python:统计列表中重复元素数量
我刚开始学习Python,想找个简单的方法来计算一个列表中重复元素的数量,比如:
MyList = ["a", "b", "a", "c", "c", "a", "c"]
输出:
a: 3
b: 1
c: 3
5 个回答
7
yourList = ["a", "b", "a", "c", "c", "a", "c"]
duplicateFrequencies = {} for i in set(yourList): duplicateFrequencies[i] = yourList.count(i)
期望的输出是 {a: 3, b: 1, c: 3}
谢谢!! 参考链接
7
在编程中,有时候我们会遇到一些问题,可能是因为代码写得不够好,或者是我们对某些概念理解得不够透彻。比如,有人可能在使用某个库的时候,发现它的功能没有达到预期,这时候就需要仔细检查代码,看看是不是哪里出错了。
另外,编程的世界变化很快,新的技术和工具层出不穷。作为初学者,可能会感到有些迷茫,但只要坚持学习,多动手实践,就能慢慢掌握这些知识。
总之,遇到问题不要气馁,积极寻求帮助,和其他人交流,都是提高自己编程能力的好方法。
In [2]: MyList = ["a", "b", "a", "c", "c", "a", "c"]
In [3]: count = {}
In [4]: for i in MyList:
...: if not i in count:
...: count[i] = 1
...: else:
...: count[i] +=1
...:
In [5]: count
Out[5]: {'a': 3, 'b': 1, 'c': 3}
12
这个在Python 2.6.6版本上是可以用的。
a = ["a", "b", "a"]
result = dict((i, a.count(i)) for i in a)
print result
打印输出
{'a': 2, 'b': 1}
26
使用 Counter
>>> from collections import Counter
>>> MyList = ["a", "b", "a", "c", "c", "a", "c"]
>>> c = Counter(MyList)
>>> c
Counter({'a': 3, 'c': 3, 'b': 1})
204
你可以使用 count
来实现这个功能:
my_dict = {i:MyList.count(i) for i in MyList}
>>> print my_dict #or print(my_dict) in python-3.x
{'a': 3, 'c': 3, 'b': 1}
或者 使用 collections.Counter
:
from collections import Counter
a = dict(Counter(MyList))
>>> print a #or print(a) in python-3.x
{'a': 3, 'c': 3, 'b': 1}