【问题标题】:remove a dict entry in a list of dict python删除 dict python 列表中的 dict 条目
【发布时间】:2014-05-22 12:45:50
【问题描述】:

如何删除列表中 dic 中的键

例如

My_list= [{'ID':0,'Name':'Paul','phone':'1234'},{'ID':1,'Name':'John','phone':'5678'}]

我想删除 ID 1 中的电话键

My_list= [{'ID':0,'Name':'Paul','phone':'1234'},{'ID':1,'Name':'John'}]

提前感谢您的帮助

【问题讨论】:

标签: python list dictionary key


【解决方案1】:

只需遍历列表,检查“ID”是否等于 1,如果是,则删除“电话”键。这应该有效:

for d in My_list:
    if d["ID"] == 1:
        del d["phone"]

最后打印列表:

print My_list

【讨论】:

    【解决方案2】:

    当您要查找的 id 匹配 1 时,然后重构字典,不包括键 phone,否则按原样使用字典,像这样

    l = [{'ID': 0, 'Name': 'Paul', 'phone': '1234'},
         {'ID': 1, 'Name': 'John', 'phone': '5678'}]
    
    k, f = 1, {"phone"}
    print([{k: i[k] for k in i.keys() - f} if i["ID"] == k else i for i in l])
    # [{'phone': '1234', 'ID': 0, 'Name': 'Paul'}, {'ID': 1, 'Name': 'John'}]
    

    这里,k 是您要查找的 ID 的值,f 是一组键,如果 id 匹配,则需要在结果字典中排除这些键。

    【讨论】:

    • >>> print[{k: i[k] for k in i.viewkeys() - f} if i["ID"] == k else i for i in l] 我有SyntaxError:我使用 Python 3.x 的语法无效
    • @user3224813 如果您使用的是 Python 3.x,请查看更新后的答案。此外,您需要在问题中明确提及版本。这对回答者有好处。
    猜你喜欢
    • 2021-11-20
    • 2017-09-23
    • 1970-01-01
    • 2020-03-14
    • 2018-10-12
    • 1970-01-01
    • 2020-03-13
    • 2023-03-09
    • 1970-01-01
    相关资源
    最近更新 更多