【问题标题】:Pop or Delete a Dictionary item from list从列表中弹出或删除字典项
【发布时间】:2021-11-15 23:11:36
【问题描述】:

我有这个字典项目列表。我想通过将其与字典项进行比较来从列表中删除特定的字典条目

items = 
[
{'label': 'Canary Wharf', 'parent': {'label': 'Canada Water', 'parent': None}}, 
{'label': 'Bermondsey', 'parent': {'label': 'Canada Water', 'parent': None}}, 
{'label': 'Surrey Quays', 'parent': {'label': 'Canada Water', 'parent': None}}, 
{'label': 'Rotherhithe', 'parent': {'label': 'Canada Water', 'parent': None}},
{'label': 'Victoria', 'parent': {'label': 'sth', 'parent': None}}, {'label': 'tth', 'parent': {'label': 'sth', 'parent': None}},
{'label': 'stu', 'parent': {'label': 'sth', 'parent': None}}, {'label': 'tth', 'parent': {'label': 'sth', 'parent': None}}
]

我有一个变量

to_delete = {'label': 'Surrey Quays', 'parent': {'label': 'Canada Water', 'parent': None}}}

我想做,

items.pop(to_delete)
OR
items.delete(to_delete)

得到,

>>>print(items)
[
{'label': 'Canary Wharf', 'parent': {'label': 'Canada Water', 'parent': None}}, {'label': 'Bermondsey', 'parent': {'label': 'Canada Water', 'parent': None}}, 
{'label': 'Victoria', 'parent': {'label': 'sth', 'parent': None}}, {'label': 'tth', 'parent': {'label': 'sth', 'parent': None}},
{'label': 'stu', 'parent': {'label': 'sth', 'parent': None}}, {'label': 'tth', 'parent': {'label': 'sth', 'parent': None}}
]

【问题讨论】:

  • items.remove(to_delete)
  • 显示“AttributeError: 'list' object has no attribute 'find'”
  • 这就是我删除那条评论的原因。
  • items.remove(to_delete) 没有删除该项目。
  • 我的错,它正在删除,我使用 print(items.remove(to_delete)),而不是打印之前和之后的列表。

标签: python python-3.x list dictionary


【解决方案1】:

您似乎正在尝试删除一组项目。您的 to_delete 实际上是一个字典元组,因此要删除它们,只需将它们解压缩到单独的变量中,例如:

delete1, delete2 = to_delete
items.remove(delete1)
items.remove(delete2)

或者,您可以保留一个变量并通过以下方式完成相同的操作:

items.remove(to_delete[0])
items.remove(to_delete[1])

Remove method in Python

【讨论】:

    猜你喜欢
    • 2012-02-21
    • 2020-07-14
    • 2012-02-16
    • 2023-01-31
    • 2010-11-17
    • 1970-01-01
    相关资源
    最近更新 更多