data = {'customer1': ['milk', 'bread'],
'customer2': ['butter'],
'customer3': ['beer', 'diapers'],
'customer4': ['milk', 'bread', 'butter'],
'customer5': ['bread']}
我希望 Python 函式輸出為
{'milk': 2, 'bread': 3, 'butter': 2, 'beer': 1, 'diapers': 1}
然后也在這個資料上建立一個直方圖
res = dict()
for key in customer_data.keys():
res[key] = len(set([sub[key] for sub in customer_data]))
uj5u.com熱心網友回復:
您可以使用Counter集合模塊中的類。
>>> data = {
... "customer1": ["milk", "bread"],
... "customer2": ["butter"],
... "customer3": ["beer", "diapers"],
... "customer4": ["milk", "bread", "butter"],
... "customer5": ["bread"],
... }
>>>
>>> from collections import Counter
>>>
>>> print(Counter([val for key, value in data.items() for val in value]))
Counter({'bread': 3, 'milk': 2, 'butter': 2, 'beer': 1, 'diapers': 1})
或者你也可以這樣做,
>>> data = {
... "customer1": ["milk", "bread"],
... "customer2": ["butter"],
... "customer3": ["beer", "diapers"],
... "customer4": ["milk", "bread", "butter"],
... "customer5": ["bread"],
... }
>>>
>>>
>>>
>>> result = {}
>>>
>>> for _, values in data.items():
... for value in values:
... result[value] = result.setdefault(value, 0) 1
...
>>> print(result)
{'milk': 2, 'bread': 3, 'butter': 2, 'beer': 1, 'diapers': 1}
uj5u.com熱心網友回復:
我沒有得到直方圖部分,但計數部分是某種重復的問題(這里)
from collections import Counter
count=Counter()
for val in data.values():
count = Counter(val)
count = dict(count)
output: {'milk': 2, 'bread': 3, 'butter': 2, 'beer': 1, 'diapers': 1}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/532040.html
標籤:Python功能字典数数
