首页 > 解决方案 > Python 列表推导来填充用作 mutliset 的 dict

问题描述

我需要创建一个多重集来跟踪给定字符串中出现的字符频率。我想使用dict理解来实现这个,但是我尝试了:

mySet = {letter : mySet.get(letter, 0) + 1 for letter in myStr}

似乎没有用......mySet.get(letter, 0)似乎总是返回 0。有没有另一种方法可以在不诉诸循环的情况下完成这个简单的任务?

标签: pythondictionarylist-comprehension

解决方案


尝试计数器

from collections import Counter

Counter('Hello World')

这返回

Counter({' ': 1, 'H': 1, 'W': 1, 'd': 1, 'e': 1, 'l': 3, 'o': 2, 'r': 1})

推荐阅读