如何从列表中删除重复的字典值

时间:2019-02-07 07:28:56

标签: python

我想从包含重复值的列表中删除字典

list = [{'data': 'sql_data'},{'data':'mongo_data'},{'data':'sql_data'}]

list = [{'data': 'sql_data'},{'data':'mongo_data'}]

5 个答案:

答案 0 :(得分:1)

sortedset一起使用:

import ast
print(sorted(map(ast.literal_eval,set(map(str,list))),key=list.index))

或者:

l=[]
for i in list:
    if i not in l:
        l.append(i)

两个输出:

[{'data': 'sql_data'},{'data':'mongo_data'}]

答案 1 :(得分:1)

如果熊猫没有嵌套字典,请使用

import pandas as pd
list = pd.DataFrame(list).drop_duplicates().to_dict(orient='records')

答案 2 :(得分:1)

print([i for n, i in enumerate(s) if i not in s[n + 1:]])

OR

单行:

[{'data': 'sql_data'}, {'data': 'mongo_data'}]

输出:

xlrd

答案 3 :(得分:1)

尝试此操作,即使键不是'data'也可以使用:

import json

list = [{'data': 'sql_data'}, {'data': 'mongo_data'}, {'data': 'sql_data'}, {'user': 'admin'}, {'user': 'admin'}]
list_deduplicated = [json.loads(i) for i in set([json.dumps(j) for j in list])]
print(list_deduplicated)

输出将是:

[{'data': 'mongo_data'}, {'data': 'sql_data'}, {'user': 'admin'}]

答案 4 :(得分:0)

使用list comprehensions解决此问题-

my_list=[{'data': 'sql_data'},{'data':'mongo_data'},{'data':'sql_data'}]
unique_list = [e for i, e in enumerate(my_list) if my_list.index(e) == i ]
print(unique_list)
    [{'data': 'sql_data'}, {'data': 'mongo_data'}]