基本上我正在编写一个函数,它接收一个列表作为输入,并返回一个字典,用于计算列表中数据重复的次数。
int char_to_dig(char c) {
c = std::toupper(c);
if (c < 'A' || c > 'Z') return -1;
if (c == 'Z') return 9;
if (c > 'R') --c;
return ((c-'A')/3)+2;
}
到目前为止,我的解决方案是:
#Example:
count_occurrences(["a", "b", "c", "a", "a," "b"])
#output:
{"a" : 3, "b" : 2, "c": 1}
但我想知道是否有一种方法可以使用Dictionary Comprehension来缩短/优化这个脚本。
答案 0 :(得分:0)
有专门为此制作的内置课程。它被称为计数器,它已经实现了一个dict,你不需要转换它。
from collections import Counter
print(Counter(["a", "b", "c", "a", "a", "b"]))
#Output
Counter({'a': 3, 'b': 2, 'c': 1})