给定一个列表,我可以使用字典理解来表示列表项作为键以及它们在列表中显示为值的次数吗?

时间:2018-03-27 05:57:43

标签: python python-3.x list dictionary-comprehension

基本上我正在编写一个函数,它接收一个列表作为输入,并返回一个字典,用于计算列表中数据重复的次数。

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来缩短/优化这个脚本。

1 个答案:

答案 0 :(得分:0)

有专门为此制作的内置课程。它被称为计数器,它已经实现了一个dict,你不需要转换它。

from collections import Counter

print(Counter(["a", "b", "c", "a", "a", "b"]))

#Output
Counter({'a': 3, 'b': 2, 'c': 1})