我正在尝试从词典列表中删除词典,但是无法实现。到目前为止,这是我尝试过的:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>JS Bin</title>
</head>
<body>
<ul>
<li><a href="#" /><span class="text">Item</span></li>
<li><a href="#" /><span class="text">Item</span></li>
<li><a href="#" /><span class="text">Item</span></li>
<li><a href="#" /><span class="text">Item</span></li>
<li><a href="#" /><span class="text">Item</span></li>
</ul>
</body>
</html>
此处data ['data']是词典列表。 x是一组数字,我从comment_data获取。如果row ['id']不在x中,我想删除字典。我该如何处理?我要去哪里错了? 我尝试了此link上给出的答案,但似乎没有一个适合我。任何帮助表示赞赏!
答案 0 :(得分:5)
在遍历列表时,请勿尝试修改列表的结构。同样,del row
仅删除循环变量row
的绑定,该绑定不影响列表。改为:
data['data'] = [row for row in data['data'] if row['ID'] in x]
请注意,尽管(由于)创建了一个新的列表对象,但它还是比您最初的尝试更好的算法性能,因为它是线性的,而从列表中间重复删除是二次的,因为每个尾元素都必须移动时间。