擅长:python、mysql、java
<p>你可以建立一个临时字典,为每种疾病建立一组年份。然后使用此词典改革<code>epidemics</code>列表:</p>
<pre><code>from collections import defaultdict
epidemics = [{"Disease": "B", "year": "1980"},
{"Disease": "C", "year": "1975"},
{"Disease": "B", "year": "1996"},
{"Disease": "E", "year": "2000"},
{"Disease": "B", "year": "2020"}]
d = defaultdict(set)
for dd in epidemics:
disease = dd['Disease']
d[disease].add(dd['year'])
for i,dd in enumerate(epidemics):
years = d[dd['Disease']]-set([dd['year']])
if years:
epidemics[i]['occurredIn'] = years
print(epidemics)
</code></pre>
<p>输出:</p>
<pre><code>[{'Disease': 'B', 'year': '1980', 'occurredIn': {'2020', '1996'}},
{'Disease': 'C', 'year': '1975'},
{'Disease': 'B', 'year': '1996', 'occurredIn': {'1980', '2020'}},
{'Disease': 'E', 'year': '2000'},
{'Disease': 'B', 'year': '2020', 'occurredIn': {'1980', '1996'}}]
</code></pre>