Python如何统计多个字符串中各字符的出现频率?
问题原因
你写的for i in string1,string2: 实际是遍历由两个入参字符串组成的元组,每次循环拿到的是完整的字符串对象,而非字符串内的单个字符,所以最终统计结果是单词出现频次,而非字符频次。
解决方案
只要新增一层循环,先遍历所有传入的字符串,再遍历单个字符串内的每个字符即可。你可以用Python可变参数*args实现支持传入任意数量的字符串,无需固定入参个数:
def freq_of_chars(*strings): freq = {} # 遍历所有传入的字符串 for s in strings: # 遍历单个字符串的每个字符 for char in s: # 用字典get方法简化判断逻辑 freq[char] = freq.get(char, 0) + 1 print("Count of all characters is: " + str(freq)) # 测试:可传入任意数量的字符串 freq_of_chars('First','Second') freq_of_chars('Test','Hello','Python')
如果需要忽略大小写统计,可以在统计前统一转换字符大小写,比如加上char = char.lower()即可。
内容的提问来源于stack exchange,提问作者User1234
相关产品推荐
相关产品推荐

