我有一個元組串列。對于每個鍵,我想計算不同值的數量。
例如,
鑒于以下串列:
[(k1, 400), (k1, 500), (k2, 600), (k2, 600), (k3, 600)]
我想生產以下內容:
{k1: 2, k2: 1, k3: 1}
解釋:
k1有兩個值 (400, 500)。k2只有一個值 (600)
什么是 Pythonic 的方式來做到這一點?
uj5u.com熱心網友回復:
from collections import defaultdict
list_of_tuples = [
("k1", 400),
("k1", 500),
("k2", 600),
("k2", 600),
("k3", 600),
]
dict_of_sets = defaultdict(set)
for key, value in list_of_tuples:
dict_of_sets[key].add(value)
result = {key: len(value) for key, value in dict_of_sets.items()}
uj5u.com熱心網友回復:
您可以使用 Dict Comprehensions 實作這一點,看起來像這樣:
x = [(k1, 400), (k1, 500), (k2, 600), (k2, 600), (k3, 600)]
dictionary = {k: v for k,v in x}
print(dictionary)
輸出:
{'k1': 500, 'k2': 600, 'k3': 600}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/364708.html
上一篇:根據熊貓字典中另一列的值添加新列
