python-如果字典键等于某个值,则从列表中删除字典
我想知道,如果用户状态等于“脱机”,订单类型等于“购买”,如何从列表中删除特定的dict(使用for循环对其进行迭代,并在迭代时修改列表,因为列表指针会产生异常)python-如果字典键等于某个值,则从列表中删除字典,python,python-3.x,Python,Python 3.x,我想知道,如果用户状态等于“脱机”,订单类型等于“购买”,如何从列表中删除特定的dict(使用for循环对其进行迭代,并在迭代时修改列表,因为列表指针会产生异常) 您可以重新创建列表,而不使用不需要的元素: mylist = [key_values for key_values in mylist if key_values['user']['status'] != 'offline'] (*)不要使用保留关键字命名变量 seq = [ { "user"
您可以重新创建列表,而不使用不需要的元素:
mylist = [key_values for key_values in mylist if key_values['user']['status'] != 'offline']
(*)不要使用保留关键字命名变量
seq = [
{
"user": {"status": "offline"},
"order_type": "buy"
},
{ "user": {"status": "online"},
"order_type": "sell"
}
]
for _ in seq:
print _
if _['user']['status'] == 'offline':
seq.remove(_)
print seq
如果你想就地移除
输出:
[{'user':{'status':'online'},'order_type':'sell'}]
产生一个异常,keyrerror:'status'和“list”变量名只是一个示例哇,有嵌套的dicts。修好了。不管什么借口,都不要隐藏关键字。这不起作用,因为它是一个很大的列表,并且由于指针的原因,在迭代时无法修改
seq = [
{
"user": {"status": "offline"},
"order_type": "buy"
},
{ "user": {"status": "online"},
"order_type": "sell"
}
]
for _ in seq:
print _
if _['user']['status'] == 'offline':
seq.remove(_)
print seq