【问题标题】:Creating histogram from list从列表创建直方图
【发布时间】:2025-11-29 07:25:01
【问题描述】:

这个问题是面试过程的一部分,我想不通。

给定一个整数列表,创建一个输出为字典的直方图。键是列表中的元素,值是列表中元素的计数。

例如,输入列表:[2,3,4,2,5,7,3,2,4] 和预期输出:{2:3,3:2,4:2..}

我知道必须有一个循环遍历列表,然后将这些值插入字典中。但是我把语法搞砸了。如果有人可以用语法或伪代码指导我,将不胜感激。帮助!

【问题讨论】:

标签: python list dictionary


【解决方案1】:

为了将来参考,您不能只提供问题,您需要提供一个最小可重复的示例。

这就是答案:

output = {}
inputlist = [2,3,4,2,5,7,3,2,4] 
for num in inputlist:
  if num in output:
    output[num] += 1
  else:
    output[num] = 1
print(output)

【讨论】:

    【解决方案2】:

    试试这个:

    from collections import Counter
    
    inputlist = [2,3,4,2,5,7,3,2,4]
    freq_counter = Counter(inputlist)
    
    print(freq_counter)
    

    【讨论】:

      【解决方案3】:

      这将是我使用字典理解的解决方案:

      inputlist = [2,3,4,2,5,7,3,2,4]
      result = {k:inputlist.count(k) for k in set(inputlist)}
      

      但是我同意collections 中的Counter 可能会表现得更好,因为inputlist 会变得更大(请参阅list.count() vs Counter() performance

      【讨论】:

        最近更新 更多