【发布时间】:2020-04-29 23:57:36
【问题描述】:
我通过将键分配为字符串中的单个字符,将值分配为字符串中这些字符的频率来构建字典。目的是计算字符串中出现频率最高的字母。由于我试图只计算字母,因此我想从计数中丢弃空格。
我写了以下内容:
sentence = 'This is some sentence.'
dict_characters = dict.fromkeys(sentence, 0)
for character in sentence:
dict_characters[c] += 1
dict_letters = {k:v for k,v in dict_characters.items() if v != ' '}
最后一行是我卡住的地方。正如我在打印新字典时所知道的那样,没有从字典中删除包含值空格的项目:
>>> dict_letters: {'T': 1, 'h': 1, 'i': 2, 's': 4, ' ': 3, 'o': 1, 'm': 1, 'e': 4, 'n': 2, 't
': 1, 'c': 1, '.': 1}
如您所见,' ': 3 仍在其中。我想要它,但无论我如何尝试在 v != ' ' 部分语法中排除该空格字符,我都无法将其删除。知道我做错了什么吗?
【问题讨论】:
-
v是值。你似乎担心钥匙(k) -
基于@PaulH 的回答,应该是这样的,空格存在于您的键中,而不是值
dict_letters = {k:v for k,v in dict_characters.items() if k != ' '} -
谢谢@PaulH。
-
谢谢@faruk13。
标签: python python-3.x