如果我有以下数据类型:
[('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'}
