如何创建一个允许我输入单词的函数,它将执行以创建一个字典来计算代码中的单个字母。我希望它显示为字典,例如,通过输入' hello'它会显示{' e':1' h':1,' l':2,' o':1}
我还需要在函数中有两个参数,一个用于字符串,一个用于字典。这与"计算字母串中每个字母的频率不同而且#34;问题
例如,我想我必须以
开头d = {}
def count(text, d ={}):
count = 0
for l in text:
if l in d:
count +=1
else:
d.append(l)
return count
但这是不正确的?我还需要通过编写text =""来设置文本的默认值。如果用户实际上没有输入任何单词?
此外,如果字典中已有现有值,我希望它添加到该现有列表中。如何实现?
此外,如果字典中已存在单词,那么您将如何添加到该列表中,例如dct = {' e':1' h':1,' l':2,' o':1}现在我在终端中运行>>> count_letters('你好',dct)结果将是{' e':2' h':2' l':4 ,':2}
答案 0 :(得分:0)
如果您可以使用Pandas,则可以使用value_counts()
:
import pandas as pd
word = "hello"
letters = [letter for letter in word]
pd.Series(letters).value_counts().to_dict()
输出:
{'e': 1, 'h': 1, 'l': 2, 'o': 1}
否则,请使用dict
和list
理解:
letter_ct = {letter:0 for letter in word}
for letter in word:
letter_ct[letter] += 1
letter_ct
答案 1 :(得分:0)
您可以使用pythons defaultdict
from collections import defaultdict
def word_counter(word):
word_dict = defaultdict(int)
for letter in word:
word_dict[letter] += 1
return(word_dict)
print(word_counter('hello'))
输出:
defaultdict(<class 'int'>, {'h': 1, 'e': 1, 'l': 2, 'o': 1})
答案 2 :(得分:-1)
def count_freqs(string, dictionary={}):
for letter in string:
if letter not in dictionary:
dictionary[letter] = 1
else:
dictionary[letter] += 1
return dictionary