我正在使用Python分析国际象棋比赛。目前我有一个字符串列表,包含~400,000个元素。64可能的字符串。这是因为每个元素表示棋盘上的一个方格,其中有64个('a1', 'a2',…, 'h7', 'h8').
要找出64个元素在整个列表中出现的次数,最有效的方法是什么?我知道排序列表会使这样的任务更快,但由于我处理的是字符串而不是整数,我不确定我能对它们排序。我不介意使用外部模块,但我在这里寻找最原始和python的方式。
任何帮助都非常感谢!
只要导入collections.Counter
并将列表传递给它就可以了。
>>> from collections import Counter
>>> li = ['a1', 'b1', 'a1', 'c3', 'a1', 'b1', 'd5']
>>> Counter(li)
Counter({'a1': 3, 'b1': 2, 'c3': 1, 'd5': 1})