Unique list of dicts based on keys
dictionary, python
Solution
Here's my solution:
def uniq(list_dicts):
return [dict(p) for p in set(tuple(i.items())
for i in list_dicts)]
hope it will help somebody.
Problem
I have a list of dics: ``` data = {} data['key'] = pointer_key data['timestamp'] = timestamp data['action'] = action data['type'] = type data['id'] = id list = [data1, data2, data3, ... ] ``` How can I ensure that for each data item in the list, only one such element exists for each "key"? If there are two keys as seen below, the most recent timestamp would win: ``` list = [{'key':1,'timestamp':1234567890,'action':'like','type':'photo',id:245}, {'key':2,'timestamp':2345678901,'action':'like','type':'photo',id:252}, {'key':1,'timestamp':3456789012,'action':'like','type':'photo',id:212}] unique(list) list = [{'key':2,'timestamp':2345678901,'action':'like','type':'photo',id:252}, {'key':1,'timestamp':3456789012,'action':'like','type':'photo',id:212}] ``` Thanks.