【问题标题】:Deleting a key from a dictionary that is in a list of dictionaries从字典列表中的字典中删除键
【发布时间】:2019-08-13 09:01:04
【问题描述】:

我有一个由以下人员生成的字典列表:

    r=requests.get(url, headers={key:password})
    import_data_list.append(r.json())

我想从这些字典中删除第一个键。我知道我可以删除列表中的字典:

    del import_data_list[0]

但是如何从列表中的字典中删除一个键,而不是删除整个字典。

我尝试了类似的方法:

    del import_data_list[0["KEY"]]

显然不行!

如果这是一个愚蠢的问题,任何帮助将不胜感激和抱歉。还在学习!

【问题讨论】:

  • 小心你想要的:如果你使用的是 python 3.5 及以下版本,dict没有排序的,因此你不会知道实际上第一个是什么。你在哪个python上?
  • del import_data_list[0]["KEY"] 呢?

标签: python list dictionary


【解决方案1】:

如果你想从这些字典中删除第一个键(你不知道它的名字,你只知道它是第一个),我建议你循环遍历列表。您可以使用list(d.keys())[0] 甚至list(d)[0] 来获取名为d 的字典的第一个键。
这是一个例子:

for d in import_data_list:
    k = list(d)[0]  # get the first key
    del d[k]        # delete it from the dictionary
print(import_data_list)

您也可以使用列表推导以单行样式来完成,我觉得这也很聪明。在这种情况下,您还可以检索列表中第一个键的值,这可能很有用:

r = [d.pop(list(d)[0]) for d in import_data_list]
print(import_data_list)

请注意,它仅适用于 python 版本 >= 3.6(但不适用于版本

【讨论】:

  • 为什么 del d[k] 保持真实而不创建新的字典列表?
【解决方案2】:

假设您有这个字典列表。

myList = [
    {
        "Sub1List1" : "value",
        "Sub2List1" : "value",
        "Sub3List1" : "value",
        "Sub4List1" : "value"
    },
    {
        "Sub1List2" : "value",
        "Sub2List2" : "value",
        "Sub3List2" : "value",
        "Sub4List2" : "value"
    },
    {
        "Sub1List3" : "value",
        "Sub2List3" : "value",
        "Sub3List3" : "value",
        "Sub4List3" : "value"
    }
]

现在,如果您想从第一个列表中删除键 Sub1List1,您可以使用:

del myList[0]["Sub1List1"]

【讨论】:

    【解决方案3】:

    使用命令:

    del dictionaryName[KEY]
    

    【讨论】:

      猜你喜欢
      • 2020-07-14
      • 1970-01-01
      • 1970-01-01
      • 2022-11-27
      • 1970-01-01
      • 2010-11-17
      • 1970-01-01
      相关资源
      最近更新 更多