如何从dicts元组中删除dict项?

Nar*_*oTv 1 python dictionary tuples list

我有一个形式的元组:

mylist = ({'a': 'a0',  't': 't0'}, {'a': 'a1',  't': 't1'}, {'a': 'a2',  't': 't2'}, ...)
Run Code Online (Sandbox Code Playgroud)

如何删除for循环中的dict?我试过以下但最后doc还是在元组中:

for doc in mylist:
    if doc['a']=="a0":
        del doc
Run Code Online (Sandbox Code Playgroud)

tim*_*geb 5

首先,不要使用名称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'})
Run Code Online (Sandbox Code Playgroud)

这假设您的所有词典实际上都有密钥'a'.如果不是这种情况,请随意添加一些错误检查代码,或者get在生成器表达式中使用带有回退值的字典方法.