【问题标题】:Write a program that reads a list of words. Then, the program outputs those words and their frequencies (case insensitive)编写一个读取单词列表的程序。然后,程序输出这些单词及其频率(不区分大小写)
【发布时间】:2022-08-21 23:59:03
【问题描述】:

如果代码输入是:

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循环的打印结果来创建正确的输出?或者你知道额外的“嘿”是从哪里来的吗?

    标签: python list split


    【解决方案1】:

    您可以使用 zip 一次迭代原始版本和较低版本

    for word, word_lower in zip(norm, low):
        print(word, low.count(word_lower))
    

    【讨论】:

      【解决方案2】:
      wordInput = input()
      
      myList = wordInput.split(" ")
      
      for i in myList:
      
         print(i,myList.count(i))
      

      【讨论】:

      • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
      【解决方案3】:

      这是一个非常简单的方法,使用您到目前为止所学的知识:

      words = input().split()
      
      for word in words:
          print(word, words.count(word))
      

      简而言之,为 for 循环拆分单词,因此您可以遍历 input() 中的每个元素。从那里,您使用一个输出语句,该语句利用 Python 中的 count() 功能来获得满分。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-12-01
        • 2015-08-30
        • 1970-01-01
        • 1970-01-01
        • 2016-07-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多