如何跟踪此列表中的频率?

我想弄清楚如何跟踪用户输入的列表中数字的频率。我的意思是:假设有人输入 45 两次,52 次输入 52 次,22 次输入,代码会打印出类似“频率:45-2、52-3 和 22-1”的内容。提出这个问题的其他代码是针对已经在代码中创建的列表,但这个不同,因为用户正在添加到列表中。


import sys


print ("After inputting this data, the sum, average, maximum and minimum 

number will be printed")


temperatureList = list()


weather=int(input("Enter the amount of days that you are looking at for 

the weather:"))


print("Enter the high temperature for those next days: ")


for i in range(int(weather)):

   k=int(input(""))

   temperatureList.append(int(k))

sm=sum(temperatureList)

avg=sm/weather

print("SUM = ",sm)

print("AVERAGE = ",avg)


temperatureList.sort()

print("This is the numbers from low to high", temperatureList)

print("Maximum number in the list is:", max(temperatureList), "and the 

minimum number is: ", min(temperatureList))


while True:

   action = int(input("Input add if you want to add to the list again. Or 

remove if you want to remove from the list, or end if you want to end this 

program"))


   if action == add:

      print("Enter what you want to be added ")

      add = int(input(""))

      temperatureList.append(add)

      print(temperatureList)

      sm = sum(temperatureList)

      avg = sm / weather

      print("SUM = ", sm)

      print("AVERAGE = ", avg)

      temperatureList.sort()

      print("This is the numbers from low to high", temperatureList)


   elif action == remove:

      if len(temperatureList) > 1:

         del temperatureList[-1]

         print(temperatureList)

         sm = sum(temperatureList)

         avg = sm / weather

         print("SUM = ", sm)

         print("AVERAGE = ", avg)


  else:

     print("Everything removed from the list")


   elif action == end:

      sys.exit()


jeck猫
浏览 205回答 2
2回答

拉风的咖菲猫

您需要所谓的直方图。您可以使用 Python 字典创建一个;使用你得到的答案作为字典的键,答案算作相应的值。每当您从用户那里得到答案时,请检查字典是否已经有该答案的条目。如果不是,则将该值设置为 1。如果键存在,则获取计数,将其加一,并存储新计数。然后,您可以在开始另一轮循环之前打印字典(或它的某种表示)。如果您不熟悉 Python 词典,请先查看文档。

catspeake

GeeksforGeeks上有一个很好的例子来说明这个问题。阅读本文将帮助您解决问题。这是他们为解决方案提供的 Python 代码:# Python program to count the frequency of  # elements in a list using a dictionary def CountFrequency(my_list):     # Creating an empty dictionary      freq = {}     for item in my_list:         if (item in freq):             freq[item] += 1        else:             freq[item] = 1    for key, value in freq.items():         print ("% d : % d"%(key, value)) # Driver function if __name__ == "__main__":      my_list =[1, 1, 1, 5, 5, 3, 1, 3, 3, 1, 4, 4, 4, 2, 2, 2, 2]     CountFrequency(my_list) 这只是遍历列表,将列表的每个不同元素用作字典中的键,并将该键的相应计数存储为值。它的时间复杂度为 O(n),其中 n 是列表的长度,因为它遍历列表中的每个值。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python