簡體   English   中英

從列表創建直方圖

[英]Creating histogram from list

這個問題是面試過程的一部分,我無法弄清楚。

給定一個整數列表,創建一個直方圖,其中輸出是一個字典。 鍵是列表中的元素,值是列表中元素的數量。

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

我知道必須有一個循環遍歷列表,然后將這些值插入字典中。 但我搞砸了語法不好。 如果有人能用語法或偽代碼指導我,我將不勝感激。 幫助!

為了將來參考,您不能只提供問題,您需要提供一個最低限度的可重現示例。

無論如何,這是答案:

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)

試試這個:

from collections import Counter

inputlist = [2,3,4,2,5,7,3,2,4]
freq_counter = Counter(inputlist)

print(freq_counter)

這將是我使用字典理解的解決方案:

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() 與 Counter() 性能

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM