<p>这可能会起作用。你知道吗</p>
<pre><code>no_duplicates = {}
for d in dict_list:
# Generate your unique key
k = (d["Module"], d["Error"])
try:
# Add if already exists.
no_duplicates[k]["Count"] += 1
except KeyError:
# Create a new one if not.
no_duplicates[k] = d
d["Count"] = 1
# Generate the new list (Works for python 2 and 3)
no_duplicates_list = list(no_duplicates.values())
</code></pre>
<p>您可以创建一个没有重复项的新字典,并使键成为您希望没有重复项的值。例如<code>(d["Module"], d["Error"])</code>。然后,如果它已经存在,则增加计数。如果没有,则在字典中创建一个新条目。你知道吗</p>
<p>但是,如果您的新密钥多于重复密钥,这将更有效,因为引发的异常更少:</p>
<pre><code>no_duplicates = {}
for d in dict_list:
k = (d["Module"], d["Error"])
# Set count to 0
d["Count"] = 0
# Set and increase count at once
no_duplicates.setdefault(k, d)["Count"] += 1
no_duplicates_list = list(no_duplicates.values())
</code></pre>
<p><strong>更新:</strong></p>
<p>如果您不想重置计数,代码如下:</p>
<pre><code>no_duplicates = {}
for d in dict_list:
# Generate your unique key
k = (d["Module"], d["Error"])
try:
# Add if already exists.
no_duplicates[k]["Count"] += d["Count"]
except KeyError:
# Create a new one if not.
no_duplicates[k] = d
# Generate the new list (Works for python 2 and 3)
no_duplicates_list = list(no_duplicates.values())
</code></pre>
<p>或者</p>
<pre><code>no_duplicates = {}
for d in dict_list:
k = (d["Module"], d["Error"])
# Set and increase count at once
no_duplicates.setdefault(k, d)["Count"] += 1
no_duplicates_list = list(no_duplicates.values())
</code></pre>