编写一个读取单词列表的程序。然后,程序输出这些单词及其频率(不区分大小写)
Write a program that reads a list of words. Then, the program outputs those words and their frequencies (case insensitive)
如果输入的代码是:
hey Hi Mark hi mark
程序希望小写字母数量计数,并且如果单词列表是大写字母,则单词列表保持大写字母。所以正确的输出是:
hey 1
Hi 2
Mark 2
hi 2
mark 2
我使用以下代码创建了正确的数字计数和列表:
line = input()
norm = line.split()
low = line.lower().split()
for chr in low:
freq = low.count(chr)
print(freq)
for x in norm:
print(x)
这个输出是:
1
2
2
2
2
hey
Hi
Mark
hi
mark
我想我可以在我的最后一个 for 循环中使用 print(x,freq) 来给出正确的输出,但是由于一些不敬虔的原因它创建了一个额外的嘿,这变成了输出:
hey 2
Hi 2
Mark 2
hi 2
mark 2
我不知道它在哪里得到额外的嘿。
无论如何要结合 2 个 for 循环的打印结果来创建正确的输出?或者你知道额外的 'hey' 是从哪里来的吗?
您可以使用 zip
同时迭代原始版本和较低版本
for word, word_lower in zip(norm, low):
print(word, low.count(word_lower))
wordInput = input()
myList = wordInput.split(" ")
for i in myList:
print(i,myList.count(i))
如果输入的代码是:
hey Hi Mark hi mark
程序希望小写字母数量计数,并且如果单词列表是大写字母,则单词列表保持大写字母。所以正确的输出是:
hey 1
Hi 2
Mark 2
hi 2
mark 2
我使用以下代码创建了正确的数字计数和列表:
line = input()
norm = line.split()
low = line.lower().split()
for chr in low:
freq = low.count(chr)
print(freq)
for x in norm:
print(x)
这个输出是:
1
2
2
2
2
hey
Hi
Mark
hi
mark
我想我可以在我的最后一个 for 循环中使用 print(x,freq) 来给出正确的输出,但是由于一些不敬虔的原因它创建了一个额外的嘿,这变成了输出:
hey 2
Hi 2
Mark 2
hi 2
mark 2
我不知道它在哪里得到额外的嘿。 无论如何要结合 2 个 for 循环的打印结果来创建正确的输出?或者你知道额外的 'hey' 是从哪里来的吗?
您可以使用 zip
for word, word_lower in zip(norm, low):
print(word, low.count(word_lower))
wordInput = input()
myList = wordInput.split(" ")
for i in myList:
print(i,myList.count(i))