为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

jeck猫 2021-12-16 15:14:25
我想弄清楚如何跟踪用户输入的列表中数字的频率。我的意思是:假设有人输入 45 两次,52 次输入 52 次,22 次输入,代码会打印出类似“频率:45-2、52-3 和 22-1”的内容。提出这个问题的其他代码是针对已经在代码中创建的列表,但这个不同,因为用户正在添加到列表中。import sysprint ("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/weatherprint("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()
查看完整描述

2 回答

?
拉风的咖菲猫

TA贡献1995条经验 获得超2个赞

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

如果您不熟悉 Python 词典,请先查看文档


查看完整回答
反对 回复 2021-12-16
?
catspeake

TA贡献1111条经验 获得超0个赞

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 是列表的长度,因为它遍历列表中的每个值。


查看完整回答
反对 回复 2021-12-16
  • 2 回答
  • 0 关注
  • 204 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信