python不满足条件重新输入_在嵌套字典上循环并在不满足条件时删除(python)

我有一个嵌套字典列表:

[{'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}]}]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值