【问题标题】:Removing a redundant dictionary from a list of dictionaries in Python [duplicate]从 Python 中的字典列表中删除冗余字典 [重复]
【发布时间】:2019-01-09 02:21:51
【问题描述】:

假设我有一个字典列表:

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

在上面的例子中,这个列表中有 2 个字典是相同的。我想要做的是通过fips 键检查并查看该值。我知道我可以使用这样的东西来检查字典,本质上,创建一个只有唯一条目的新列表:

result = {}

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

print result

但我很难将其应用于 list 字典。我在这里做错了什么?

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

【问题讨论】:

    标签: python python-2.7 list dictionary redundancy


    【解决方案1】:

    您可以使用检查标志。

    例如:

    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'}]
    

    【讨论】:

    • 这很完美,而且非常容易实现!
    • 不客气 :)
    猜你喜欢
    • 2023-01-31
    • 2022-11-27
    • 2011-10-28
    • 1970-01-01
    • 2020-03-03
    • 1970-01-01
    • 2019-09-26
    • 2016-03-14
    • 1970-01-01
    相关资源
    最近更新 更多