【问题标题】:How can I delete an element in list in a dictionary?如何删除字典列表中的元素?
【发布时间】:2023-01-12 01:45:00
【问题描述】:
我正在练习对字典的掌握,然后遇到了这个问题。
我用几个键创建了一个字典,一些键有多个值,这些值是使用列表分配的。
例如:
mypouch = {
'writing_stationery': ['Pens', 'Pencils'],
'gadgets': ['calculator', 'Watch'],
'Documents': ['ID Card', 'Hall Ticket'],
'Misc': ['Eraser', 'Sharpener', 'Sticky Notes']
}
我想删除特定项目“橡皮擦”。
通常我可以只使用 pop 或 del 函数,但元素在列表中。
我希望 misc 的输出为 'Misc':['Sharpener', 'Sticky Notes']
此类问题的可能解决方案是什么?
【问题讨论】:
标签:
python
list
dictionary
【解决方案1】:
你可以做:
mypouch['Misc'].remove('Eraser')
或者,使用集合而不是列表:
for k in mypouch:
mypouch[k] = set(mypouch[k])
然后,使用与列表相同的代码,很容易从集合中删除一个元素,复杂度为 O(1)。
【解决方案2】:
你可以试试这个:
for k,v in dct.items():
if 'Eraser' in v:
v.remove('Eraser')
dct[k] = v
print(dct)
输出:
{
'writing_stationery': ['Pens', 'Pencils'],
'gadgets': ['calculator', 'Watch'],
'Documents': ['ID Card', 'Hall Ticket'],
'Misc': ['Sharpener', 'Sticky Notes']
}