我有一個問題。
Input=[/span>
{'id':uuid1(),/span>'name'。 'mem','point'。 [{'second'。 0,'severeity'。 'infor'}],/span>'date'。 '2021-09-15',/span>'PO'。 5},
{'id':uuid1(),/span>'name'。 'cpu','point'。 [{'second'。 10,'嚴重程度'。 '警告'}],/span>'日期'。 '2021-09-13',/span>'PO'。 3},
{'id':uuid1(),/span>'name'。 'cpu','point'。 [{'second'。 20,'嚴重程度'。 '嚴重性'}],'日期'。 '2021-09-14',/span>'PO'。 3},
{'id':uuid1(),/span>'name'。 'cpu','point'。 [{'second'。 30,'severeity'。 'infor'}],/span>'date'。 '2021-09-15',/span>'PO'。 3}】
我將在這個陣列中進行比較。如果名字相同,我將合并這個dict的所有值。
這意味著結合所有的鍵'point'的值。我將會有一個有多個dict的key list 'point'
。我們有許多重復的鍵名 = 'cpu'。所以我將合并所有相同的值。你看我們有PO相同的值(PO=3與name=cpu)。如果不同的值,我們將采取最后的值(最后的值'date':'2021-09-15')。最后,我們將把關鍵點串列中的dict追加到一起
期望的結果
Output=[] 。
{'id':uuid1(),/span>'name'。 'mem','point'。 [{'second'。 0,'severeity'。 'infor'}],/span>'date'。 '2021-09-15',/span>'PO'。 5},
{'id':uuid1(),/span>'name'。 'cpu','point'。 [{'second'。 10,'嚴重性':'警告'},
{'second':20,' severity':
{'second':30,' severity': 'infor'}],/span>'date'。 '2021-09-15',/span>'PO'。 3}
]
注意:我使用的是Python 3.6
。我希望有人能幫助我。謝謝你的幫助
uj5u.com熱心網友回復:
可能有更好的方法,但下面的方法可行:
a=[{'name':'mem','point':[{'second': 0,'severeity':'infor'}],'date': '2021-09-15','PO':5}。
{'name':'cpu','point'。 [{'second':10,'severeity': 'warning'}],'date':'2021-09-13','PO': 3},
{'name':'cpu','point'。 [{'second':20,'severeity': 'critical'}],'date':'2021-09-14','PO':3}。
{'name':'cpu','point'。 [{'second':30,'severeity': 'infor'}],'date':'2021-09-15','PO':3}]
b=[]
for i in a:
for j in b:
if i['name'] == j['name]。
j['point'] = i['point'].
break break
else:
b.append(i)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/308547.html
標籤:
上一篇:C#創建一個串列,接受用戶的輸入,然后從串列中列印出一定數值范圍內的數字(請解釋如何作業以及為什么作業)。
下一篇:Purr中的地圖功能
