मैं collections.Counter() के व्यवहार को हासिल करने की कोशिश कर रहा हूं लेकिन शब्दकोशों की एक सूची के साथ।

डिक्ट्स की सूची देना: [{"a": 1, "b": 2}, {"a": 0, "b": 2}, {"a": 1, "b": 2}]

समारोह वापस आना चाहिए: {"a": 1, "b": 2} : 2 {"a": 0, "b": 2} : 1

-1
Antoine Andrieu 22 सितंबर 2020, 10:36

1 उत्तर

सबसे बढ़िया उत्तर

शब्दकोश हैश करने योग्य नहीं है, इसका अर्थ है कि सीधे काउंटर लगाने से काम नहीं चलेगा।
हालांकि, आप अपनी इनपुट सूची से प्राप्त फ्रोजनसेट की सूची के साथ काउंटर का उपयोग कर सकते हैं।

>>> Counter(frozenset(d.items()) for d in l)
Counter({frozenset({('b', 2), ('a', 1)}): 2, frozenset({('a', 0), ('b', 2)}): 1})
1
abc 22 सितंबर 2020, 07:41