Skip to main content
 首页 » 编程设计

python之如何从 Python 中的以下数据类型中删除项目

2025年05月04日15sky-heaven

如果我有以下数据类型:

[('a', 'digital-text'), ('b', 'bbbbbbb'), ('c', '1318913293'), ('d', '1-3')] 

如何删除项目 b 以便输出如下所示:

[('a', 'digital-text'), ('c', '1318913293'), ('d', '1-3')] 

如何在删除之前检查 b 是否存在?我试过 if 'b' in xxxx 但这找不到它

我是 Python 新手

请您参考如下方法:

你可以像这样使用列表推导式:

something = [(key, value) for key, value in something if key != 'b'] 

但是,出于某种原因,您似乎正在尝试重新发明一本字典。如果不需要排序,就用字典:

something = { 
    'a': 'digital-text', 
    'b': 'bbbbbbb', 
    'c': '1318913293', 
    'd': '1-3', 
} 
del something['b'] 

如果确实需要排序,可以使用collections.OrderedDict而不是dict:

from collections import OrderedDict 
something = OrderedDict([ 
    ('a', 'digital-text'), 
    ('b', 'bbbbbbb'), 
    ('c', '1318913293'), 
    ('d', '1-3') 
]) 
del something['b'] 

有了字典,如果您需要以问题中的格式返回它,只需在字典上调用 items()。

>>> # assuming something is an OrderedDict and you've already deleted the item 
>>> # if it was a plain dict, it might be in a different order 
>>> # if you haven't deleted the item, it would still be there 
>>> something.items() 
[('a', 'digital-text'), ('c', '1318913293'), ('d', '1-3')] 

此外,要将问题中的列表转换为某种字典,只需将其传递给它:

>>> dict([ 
...     ('a', 'digital-text'), 
...     ('b', 'bbbbbbb'), 
...     ('c', '1318913293'), 
...     ('d', '1-3') 
... ]) 
{'a': 'digital-text', 'b': 'bbbbbbb', 'c': '1318913293', 'd': '1-3'}