读代码专项第 2 题:字典计数 KeyError names = ["张三", "李四", "张三"] counts = {} for name in names: counts[name] = counts[name] + 1 print(counts)
-
代码意图:
统计 names 中每个名字出现的次数。 -
问题和根因:
问题在 counts[name] = counts[name] + 1。Python 会先计算右边 counts[name] + 1,第一次遇到“张三”时 counts 还是空字典,里面没有“张三”这个 key,所以抛 KeyError。 -
修复方案:
改成 counts[name] = counts.get(name, 0) + 1。

浙公网安备 33010602011771号