我有一个形式为字典的元组:
mylist = ({'a': 'a0', 't': 't0'}, {'a': 'a1', 't': 't1'}, {'a': 'a2', 't': 't2'}, ...)
如何删除 for 循环中的字典?我尝试了以下但最后 doc 仍在元组中:
for doc in mylist:
if doc['a']=="a0":
del doc
请您参考如下方法:
首先,不要使用名称list,你会隐藏内置列表。
元组是不可变的,因此您必须构建一个新的元组。
>>> t = ({'a': 'a0', 't': 't0'}, {'a': 'a1', 't': 't1'}, {'a': 'a2', 't': 't2'})
>>> tuple(d for d in t if d['a'] != 'a0')
({'a': 'a1', 't': 't1'}, {'a': 'a2', 't': 't2'})
这假设您所有的词典实际上都有键 'a'。如果情况并非如此,请随意添加一些错误检查代码或使用字典的 get 方法,在生成器表达式中使用回退值。
