从词典列表中删除重复列表 [英] Remove duplicates from list of dictionaries within list of dictionaries
本文介绍了从词典列表中删除重复列表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有清单:
my_list = [{'date':'10 .06.2016',
'帐户:[{'name':'a'},
{'name':'a'},
{'name':'b'},
{'name' :'b'}]},
{'date':'22 .06.2016',
'account':[{'name':'a'},
{'name' :'a'}]}]
我想从<$的字典列表中删除重复项c $ c>帐户 :
my_list = [{'date':'10 .06。 2016,
帐户:[{'name':'a'},
{'name':'b'}]},
{'date':'22.06。 2016',
'account':[{'name':'a'}]}]
使用 set
时,出现以下错误:
TypeError:不可散列的类型:'dict'
有人可以帮我解决这个问题吗?
def deduplicate_account_names(l):
for d in l:
names = set(map( lambda d:d.get('name'),d ['account']))
d ['account'] = [{'name':name} for name in name]
#更短:
#def deduplicate_account_names(l):
#l中的d:
#d ['account'] = [{'name':name} for set in (map(lambda d:d.get('name'),d ['account']))]
my_list = [{'date':'10 .06.2016',
'account':[{'name':'a'},
{'name':'a'},
{'name':'b'},
{'name ':'b'}]},
{'date':'22 .06.2016',
'account':[{'name':'a'},
{'name ':'a'}]}]]
deduplicate_account_names(my_list)
print(my_list)
#[{'date':'10 .06.2016',
#'帐户':[{'名称':'a'},
#{'名称':'b'}]},
#{'日期':'22 .06。 2016',
#‘帐户’:[{'名称:‘a’}]}]
I have list:
my_list = [{'date': '10.06.2016',
'account': [{'name': 'a'},
{'name': 'a'},
{'name': 'b'},
{'name': 'b'}]},
{'date': '22.06.2016',
'account': [{'name': 'a'},
{'name': 'a'}]}]
I want to remove duplicates from the list of dictionaries in 'account'
:
my_list = [{'date': '10.06.2016',
'account': [{'name': 'a'},
{'name': 'b'}]},
{'date': '22.06.2016',
'account': [{'name': 'a'}]}]
When using set
, I get the following error:
TypeError: unhashable type: 'dict'
Can anybody help me with this problem?
解决方案
def deduplicate_account_names(l):
for d in l:
names = set(map(lambda d: d.get('name'), d['account']))
d['account'] = [{'name': name} for name in names]
# even shorter:
# def deduplicate_account_names(l):
# for d in l:
# d['account'] = [{'name': name} for name in set(map(lambda d: d.get('name'), d['account']))]
my_list = [{'date': '10.06.2016',
'account': [{'name': 'a'},
{'name': 'a'},
{'name': 'b'},
{'name': 'b'}]},
{'date': '22.06.2016',
'account': [{'name': 'a'},
{'name': 'a'}]}]
deduplicate_account_names(my_list)
print(my_list)
# [ {'date': '10.06.2016',
# 'account': [ {'name': 'a'},
# {'name': 'b'} ] },
# {'date': '22.06.2016',
# 'account': [ {'name': 'a'} ] } ]
这篇关于从词典列表中删除重复列表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文