从Python中的字典列表中删除冗余字典

从Python中的字典列表中删除冗余字典,python,python-2.7,list,dictionary,redundancy,Python,Python 2.7,List,Dictionary,Redundancy,假设我有一个字典列表: [{'county': 'Lincoln County', 'state': 'SD', 'fips': '46083'}, {'county': 'Minnehaha County', 'state': 'SD', 'fips': '46099'}, {'county': 'Minnehaha County', 'state': 'SD', 'fips': '46099'},...] 在上面的示例中,此列表中的两个词典是相同的。我要做的是,通过fips键检查并查看值是

假设我有一个字典列表:

[{'county': 'Lincoln County', 'state': 'SD', 'fips': '46083'}, {'county': 'Minnehaha County', 'state': 'SD', 'fips': '46099'}, {'county': 'Minnehaha County', 'state': 'SD', 'fips': '46099'},...]
在上面的示例中,此列表中的两个词典是相同的。我要做的是,通过
fips
键检查并查看值是否正确。我知道我可以用这样的方法来查字典,本质上,创建一个只包含唯一条目的新列表:

result = {}

for key,value in dictionary.items():
    if value not in result.values():
        result[key] = value

print result
但我很难将这一点应用到词典列表中。我做错了什么

for i in dictionary:
    for key,value in dictionary[i].items():
        if value not in result.values():
            result[key] = value

您可以使用检查标志

Ex:

d = [{'county': 'Lincoln County', 'state': 'SD', 'fips': '46083'}, {'county': 'Minnehaha County', 'state': 'SD', 'fips': '46099'}, {'county': 'Minnehaha County', 'state': 'SD', 'fips': '46099'}]

check_val  = set()
res = []
for i in d:
    if i["fips"] not in check_val:
        res.append(i)
        check_val.add(i["fips"])
print(res)
[{'county': 'Lincoln County', 'state': 'SD', 'fips': '46083'}, {'county': 'Minnehaha County', 'state': 'SD', 'fips': '46099'}]
输出:

d = [{'county': 'Lincoln County', 'state': 'SD', 'fips': '46083'}, {'county': 'Minnehaha County', 'state': 'SD', 'fips': '46099'}, {'county': 'Minnehaha County', 'state': 'SD', 'fips': '46099'}]

check_val  = set()
res = []
for i in d:
    if i["fips"] not in check_val:
        res.append(i)
        check_val.add(i["fips"])
print(res)
[{'county': 'Lincoln County', 'state': 'SD', 'fips': '46083'}, {'county': 'Minnehaha County', 'state': 'SD', 'fips': '46099'}]

您可以使用检查标志

Ex:

d = [{'county': 'Lincoln County', 'state': 'SD', 'fips': '46083'}, {'county': 'Minnehaha County', 'state': 'SD', 'fips': '46099'}, {'county': 'Minnehaha County', 'state': 'SD', 'fips': '46099'}]

check_val  = set()
res = []
for i in d:
    if i["fips"] not in check_val:
        res.append(i)
        check_val.add(i["fips"])
print(res)
[{'county': 'Lincoln County', 'state': 'SD', 'fips': '46083'}, {'county': 'Minnehaha County', 'state': 'SD', 'fips': '46099'}]
输出:

d = [{'county': 'Lincoln County', 'state': 'SD', 'fips': '46083'}, {'county': 'Minnehaha County', 'state': 'SD', 'fips': '46099'}, {'county': 'Minnehaha County', 'state': 'SD', 'fips': '46099'}]

check_val  = set()
res = []
for i in d:
    if i["fips"] not in check_val:
        res.append(i)
        check_val.add(i["fips"])
print(res)
[{'county': 'Lincoln County', 'state': 'SD', 'fips': '46083'}, {'county': 'Minnehaha County', 'state': 'SD', 'fips': '46099'}]

这是完美的工作和超级容易实施!不客气:)这非常好用,而且非常容易实现!不客气:)