【问题标题】:Delete dictionary in embedded list of dictionaries based on index number?根据索引号删除嵌入字典列表中的字典?
【发布时间】:2021-01-09 22:26:18
【问题描述】:

我在一个列表中有一个嵌入的字典列表,例如:

mylist = {'mydict': [{'A': 'Letter A','ay':'alpha'},
                     {'B': 'Letter B','bee':'beta'},
                     {'C': 'Letter C','cee':'cat'}]}

如何根据索引号删除列表中的一个字典?字典中的键:值对可能会随着列表的每次新迭代而改变,因此必须使用索引号。

例如,如果我选择删除 index[1],则字典列表将导致:

mylist = {'mydict': [{'A': 'Letter A','ay':'alpha'},
                     {'C': 'Letter C','cee':'cat'}]}

感谢您的帮助!

【问题讨论】:

    标签: python dictionary indexing


    【解决方案1】:

    感谢您详细解释的问题。答案比您的详细信息简单,但您的问题与“如何按索引从列表中删除”相同

    items = [1, 2, 3]
    del items[1]
    assert items == [1, 3]
    

    你的问题也一样

    del my_list["mydict"][1]
    

    因为my_list["mydict"] 是您的列表。

    顺便说一句,你描述的需要按索引删除的方式让我认为这不是最好的方法,它也会改变索引,所以你可能会遇到一些更大的设计级别问题。

    【讨论】:

      【解决方案2】:

      要删除包含在列表中的字典,您只需执行与访问包含列表的字典相同的操作。

      在您的情况下,假设您想从字典中删除列表元素,其值为{'B': 'Letter B','bee':'beta'}

      >> mylist = {'mydict': [{'A': 'Letter A','ay':'alpha'},
                       {'B': 'Letter B','bee':'beta'},
                       {'C': 'Letter C','cee':'cat'}]}
      >> {'mydict': [{'A': 'Letter A', 'ay': 'alpha'},
                     {'B': 'Letter B', 'bee': 'beta'},
                     {'C': 'Letter C', 'cee': 'cat'}]}
      

      然后使用del关键字删除:

      >> del mylist['mydict'][1]
      >> {'mydict': [{'A': 'Letter A', 'ay': 'alpha'},
                     {'C': 'Letter C', 'cee': 'cat'}]}
      

      如果你下次想做类似的事情,语法或多或少是这样的:

      >> del dictionary['key'][index_of_list]
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-06-04
        • 1970-01-01
        • 1970-01-01
        • 2020-10-20
        • 2017-11-06
        • 2018-04-10
        • 1970-01-01
        • 2021-12-08
        相关资源
        最近更新 更多