【发布时间】:2016-12-03 17:05:39
【问题描述】:
考虑一个从映射初始化的基本计数器:
dict_1 = {'a': 1, 'b': 2, 'c': 3}
count_1 = Counter(dict_1)
print count_1
>>> Counter({'c': 3, 'b': 2, 'a': 1})
一切都有意义。但是 Counter 还允许我从一个字典中初始化,该字典具有非整数作为键和值。例如,
dict_2 = {'a': 'apple', 'b': 'banana', 'c': 'cheese'}
count_2 = Counter(dict_2)
print count_2
>>> Counter({'c': 'cheese', 'b': 'banana', 'a': 'apple'})
上面写的代码是 Python 2.7,但我也在 Python 3.5 上测试过,得到了同样的结果。这似乎违反了计数器的最基本规则,其中“元素存储为字典键,其计数存储为字典值”。计数器是否应该允许不是整数的值?它不应该抛出错误或其他东西吗?什么解释了这种行为?
【问题讨论】: