我想从包含重复值的列表中删除字典
list = [{'data': 'sql_data'},{'data':'mongo_data'},{'data':'sql_data'}]
list = [{'data': 'sql_data'},{'data':'mongo_data'}]
答案 0 :(得分:1)
将sorted
与set
一起使用:
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'}]