![](/img/trans.png)
[英]count number of times a value occurs in a dictionary of lists, where keys are number of occurrences
[英]count number of letters that occur in a string and add the letter and number of times it occurs to a dictionary as a key value pair
我写了一个函数来计算一个字母在字符串中出现的次数,并返回这个字母和它在字符串中出现的次数作为 key: value 字典中的值对,该函数是忽略任何标点符号。
这是我所拥有的
def count_letters(text):
result = {}
for letter in text:
if letter.isalpha():
if result[letter.lower()]:
result[letter.lower()] += 1
result[letter.lower()] = 1
return(result)
我想如果关键结果 [字母] 不存在它应该跳过 if 语句
if result[letter.lower()]:
但相反,它引发了一个关键错误,我做错了什么?
我期待如果
text = "This is a sentence."
那么我的函数应该返回
{'t': 2, 'h': 1, 'i': 2, 's': 3, 'a': 1, 'e': 3, 'n': 2, 'c': 1}
我正在尝试在不导入任何模块的情况下执行此操作,这是一种提高我对词典知识的学习练习。
它抛出一个keyerror,因为那个键还不存在。 使用 try-except 代替:
lower = letter.lower() # Only need to do this once
try:
result[lower] += 1
except KeyError:
result[lower] = 1
还有 FWIW,这样做的规范方法是使用collections.Counter
,例如:
collections.Counter(c.lower() for c in text if c.isalpha())
尝试一下:
def count_letters(text):
result = {}
for letter in text:
if letter.isalpha():
if letter.lower() in result.keys():
result[letter.lower()] += 1
else:
result[letter.lower()] = 1
return(result)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.