如果用户状态等于"离线"我想知道如何从此列表中删除特定的字典并且订单类型等于"购买" (使用for循环迭代它并在迭代时修改列表因为列表指针而产生异常)
mylist = [
{
"user": {"status": "offline"},
"order_type": "buy"
},
{
"user": {"status": "online"},
"order_type": "sell"
}
]
答案 0 :(得分:1)
您可以重新创建没有不需要的元素的列表:
mylist = [key_values for key_values in mylist if key_values['user']['status'] != 'offline']
(*)不要使用保留关键字命名变量。
答案 1 :(得分:1)
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'}]