如何从字典列表中删除字典?

时间:2015-10-17 19:37:13

标签: python python-3.x dictionary

假设我有这个:

d_list = [ {'id':1, 'Name': 'Hannah', weight:150}, {'id':2, 'Name':'Andrew', weight:200}, {'id':3, 'Name':'Joe', weight:180}, {'id':3, 'Name':'Joe', weight:180}]

我怎么可能删除说id为3的字典? (所以我的字典列表将包含id 1,2和4)或重量超过180的人(所以我将不再拥有id 2)

我已尝试过诸如

之类的简单内容
for d in d_list:
    if d['weight'] > 180:
        d_list.pop(d)

我在谷歌上找到的其他东西但没有用。我很抱歉,如果之前发布的,或者看起来很容易,但我一直在寻找能帮助我的东西,而且没有做任何事情。

3 个答案:

答案 0 :(得分:2)

因为从你正在迭代的列表中删除不是一个好主意我建议以下列表理解:

d_list = [item for item in d_list if item['weight'] <= 180]

答案 1 :(得分:1)

pop()for arrays使用整数作为参数,而不是对象。使用

d_list.remove(d)

代替。

https://docs.python.org/3/library/array.html

答案 2 :(得分:0)

index = next(index for index, dictionary in enumerate(d_list)
             if dictionary['id'] == 3)

delete d_list[index]