我有字典串列,有時會有重復的字典。例如:
objList =
[{
'Name': 'plate',
'StartTime': '2022-05-17T10:26:05.738101',
}, {
'Name': 'bezel',
'StartTime': '2022-05-17T10:26:09.922667',
}, {
'Name': 'chrome',
'StartTime': '2022-05-17T10:26:23.283304',
}, {
'Name': 'plate placement',
'StartTime': '2022-05-17T10:26:25.570845',
}, {
'Name': 'plate placement',
'StartTime': '2022-05-17T10:26:39.3390',
}]
在上面的資料中,plate placement是重復的。同樣,任何 dict 都可以復制,但我洗掉了任何重復的資料并只保留一個。為此,首先我想檢查串列中是否有重復的字典:
obj_names = []
for obj in objList:
obj_names.append(obj['Name'])
現在obj_names包含['plate', 'bezel', 'chrome', 'plate placement', 'plate placement']. 所以這樣我們就知道哪個 dict 是重復的。我們現在必須洗掉它出現的任何一個。但我不確定我們如何從串列中洗掉該事件。任何人都可以提出一些建議嗎?謝謝
uj5u.com熱心網友回復:
正如@mugiseyebrows 所說,我們使用'Name'每個字典的 (這個說法不是很嚴格。)作為鍵和字典本身作為值來創建一個新字典,這樣您就可以確保具有相同的字典'Name'出現一次,并且然后使用它values來創建一個新串列:
>>> new_dict = {dct['Name']: dct for dct in objList}
>>> new_list = list(new_dict.values())
>>> print('},\n'.join(str(new_list).split('},')))
[{'Name': 'plate', 'StartTime': '2022-05-17T10:26:05.738101'},
{'Name': 'bezel', 'StartTime': '2022-05-17T10:26:09.922667'},
{'Name': 'chrome', 'StartTime': '2022-05-17T10:26:23.283304'},
{'Name': 'plate placement', 'StartTime': '2022-05-17T10:26:39.3390'}]
uj5u.com熱心網友回復:
您可以使用名稱作為鍵的字典字典來代替字典串列。這樣,如果您插入具有相同名稱的新物件,它將替換以前的物件。
如果您需要保留訂單,可以使用OrderedDict。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/476895.html
上一篇:如何組合多個資料列并輸出為字典
下一篇:傳單地圖修改傾斜角度
