I have this list of dictionary items. I want to delete a specific dictionary entry from the list by comparing it with a dictionary item
JavaScript
x
10
10
1
items =
2
[
3
{'label': 'Canary Wharf', 'parent': {'label': 'Canada Water', 'parent': None}},
4
{'label': 'Bermondsey', 'parent': {'label': 'Canada Water', 'parent': None}},
5
{'label': 'Surrey Quays', 'parent': {'label': 'Canada Water', 'parent': None}},
6
{'label': 'Rotherhithe', 'parent': {'label': 'Canada Water', 'parent': None}},
7
{'label': 'Victoria', 'parent': {'label': 'sth', 'parent': None}}, {'label': 'tth', 'parent': {'label': 'sth', 'parent': None}},
8
{'label': 'stu', 'parent': {'label': 'sth', 'parent': None}}, {'label': 'tth', 'parent': {'label': 'sth', 'parent': None}}
9
]
10
I have a variable
JavaScript
1
2
1
to_delete = {'label': 'Surrey Quays', 'parent': {'label': 'Canada Water', 'parent': None}}}
2
I would like to do,
JavaScript
1
4
1
items.pop(to_delete)
2
OR
3
items.delete(to_delete)
4
To get,
JavaScript
1
8
1
>>>print(items)
2
[
3
{'label': 'Canary Wharf', 'parent': {'label': 'Canada Water', 'parent': None}}, {'label': 'Bermondsey', 'parent': {'label': 'Canada Water', 'parent': None}},
4
{'label': 'Victoria', 'parent': {'label': 'sth', 'parent': None}}, {'label': 'tth', 'parent': {'label': 'sth', 'parent': None}},
5
{'label': 'stu', 'parent': {'label': 'sth', 'parent': None}}, {'label': 'tth', 'parent': {'label': 'sth', 'parent': None}}
6
]
7
8
Advertisement
Answer
It seems that you are trying to delete a tuple of items. Your to_delete
is actually a tuple of dictionaries, so to delete them, simply unpack them into separate variables like:
JavaScript
1
4
1
delete1, delete2 = to_delete
2
items.remove(delete1)
3
items.remove(delete2)
4
Alternatively, you can keep one variable and accomplish the same by:
JavaScript
1
3
1
items.remove(to_delete[0])
2
items.remove(to_delete[1])
3