[英]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.