Python 字频计数器
这项练习需要使用字典,并计算每个单词在大量用户输入中出现的次数。它以某种方式工作,但不会将用户输入的每一行中的每一个单词都原子化。因此,不是将“快乐日”的输入计算为1 x快乐日和1 x快乐日,而是给我1 x快乐日。我已经尝试过将其与较低的一起拆分,但这会将输入转换为一个列表,我正在努力将该列表放入字典中 正如你可能已经猜到的,我是一个新手,所以所有的帮助将不胜感激Python 字频计数器,python,dictionary,Python,Dictionary,这项练习需要使用字典,并计算每个单词在大量用户输入中出现的次数。它以某种方式工作,但不会将用户输入的每一行中的每一个单词都原子化。因此,不是将“快乐日”的输入计算为1 x快乐日和1 x快乐日,而是给我1 x快乐日。我已经尝试过将其与较低的一起拆分,但这会将输入转换为一个列表,我正在努力将该列表放入字典中 正如你可能已经猜到的,我是一个新手,所以所有的帮助将不胜感激 occurrences = {} while True: word = input('Enter line: ')
occurrences = {}
while True:
word = input('Enter line: ')
word = word.lower() #this is also where I have tried a split()
if word =='':
break
occurrences[word]=occurrences.get(word,0)+1
for word in (occurrences):
print(word, occurrences[word])
编辑
为回应欢呼。这最终成为了最终的解决方案。他们并不担心这个案子,希望最终的结果能够得到整理
occurrences = {}
while True:
words = input('Enter line: ')
if words =='':
break
for word in words.split():
occurrences[word]=occurrences.get(word,0)+1
for word in sorted(occurrences):
print(word, occurrences[word])
你所拥有的几乎就在那里,你只想在将单词添加到dict时循环这些单词
occurrences = {}
while True:
words = input('Enter line: ')
words = words.lower() #this is also where I have tried a split()
if words =='':
break
for word in words.split():
occurrences[word]=occurrences.get(word,0)+1
for word in (occurrences):
print(word, occurrences[word])
此行未执行:引用[word]=引用。getword,0+1 因为如果它进入if,它将进入中断,并且永远不会执行该行。如果不缩进,则使其位于外部
一般来说,所发布代码的缩进是乱七八糟的,我想这与实际代码中的情况不太一样。您想要逐行统计还是总体统计?我猜您需要逐行输入,但也可以通过在以下代码中取消注释几行来轻松获得总体统计信息:
# occurrences = dict() # create a dictionary here if yuo want to have incremental overall stats
while True:
words = input('Enter line: ')
if words =='':
break
word_list = words.lower().split()
print word_list
occurrences = dict() # create a dict here if you want line by line stats
for word in word_list:
occurrences[word] = occurrences.get(word,0)+1
## use the lines bellow if you want line by line stats
for k,v in occurrences.items():
print k, " X ", v
## use the lines bellow if you want overall stats
# for k,v in occurrences.items():
# print k, " X ", v
你能给我们一些你的代码输入和输出的示例吗?分割输入行后,你应该遍历新形成的列表,将每个单词添加到字典计数器中。另外,我不确定这是你的帖子还是你的原始代码的一部分,但你的代码似乎没有机会打破while循环,因为此处的缩进不正确post@dm03514,counter是一个很好的建议,但OP说这个练习需要字典。