我一直试图制作一个带有输出的程序:
Enter line: which witch
Enter line: is which
Enter line:
is 1
which 2
witch 1
我希望它如何工作是为了输入几行,当没有提交任何内容时,它将计算每行的数量。
目前,我无法计算句子中的单个行数,只计算整个句子。我的代码:
dic = {}
while True:
line = input('Enter Line: ')
line = line.lower()
if not line:
break
dic.setdefault(line, 0)
dic[line] += 1
for line, n in sorted(dic.items()):
print(line, n)
产生输出:
Enter line: which witch
Enter line: is which
Enter line:
which witch 1
is which 1
而不是第一个
任何帮助将不胜感激。感谢
答案 0 :(得分:2)
代码使用每一行作为字典键,而不是单词。使用str.split
拆分行并迭代单词。
dic = {}
while True:
line = input('Enter Line: ')
line = line.lower()
if not line:
break
for word in line.split(): # <-----
dic.setdefault(word, 0) # <-----
dic[word] += 1 # <-----
for line, n in sorted(dic.items()):
print(line, n)
BTW,考虑使用collections.Counter
进行此类任务(计算事件)。