我有一个嵌套字典列表:
[{'a': 1,
'b': 'string',
'c': [{'key1': 80,
'key2': 'string',
'key3': 4033},
{'key1': 324,
'key2': 'string',
'key3': 4034,
'key4': 1}]},
{'a': 1,
'b': 'string',
'c': [{'key1': 80,
'key2': 'string',
'key3': 4033},
{'key1': 324,
'key2': 'string',
'key3': 4034,
'key4': 1,
'key5': 2}]}]
请不要把键的值
c
又是一个字典列表。
现在我想从这个列表中筛选出所有带键的词典
C
,不包含
key1
,
key2
,
key3
和;
key4
.
我想先循环,再循环,等等
dict
在列表中,然后在嵌套的
双关语
那有
C
作为一把钥匙。然后,如果
双关语
里面
C
不符合我的要求,我删除它。
因此,我的代码是:
for j in range(len(mydict)):
for i in range(len(mydict[j]["c"])):
if not all (k in mydict[j]["c"][i] for k in ("key1", "key2", "key3", "key4")):
del(mydict[j]["c"][i])
但是我得到了
IndexError: list index out of range
错误。我的错误在哪里?
我想要的结果是:
[{'a': 1,
'b': 'string',
'c': [{'key1': 324,
'key2': 'string',
'key3': 4034,
'key4': 1}]},
{'a': 1,
'b': 'string',
'c': [{'key1': 324,
'key2': 'string',
'key3': 4034,
'key4': 1,
'key5': 2}]}]