编写一个读取单词列表的程序。然后,程序输出这些单词及其频率(不区分大小写)

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))