删除列表中的多个词典

MrK*_*Kay 5 python dictionary list

我一直在尝试删除列表中的多个词典,但我一次只能删除一个词典.

以下是我正在处理的主要代码.记录是词典列表.我想删除其中包含0的字典.

Records = [{'Name':'Kelvin','Price': 0},{'Name': 'Michael','Price':10}]
Run Code Online (Sandbox Code Playgroud)

我想删除价格为0的词典

def deleteUnsold(self):
    for d in records:
        for key, value in d.items():
            if d['Price'] == 0:
                records.remove(d)
Run Code Online (Sandbox Code Playgroud)

Bha*_*Rao 11

使用具有条件的列表推导if

>>> Records = [{'Name':'Kelvin','Price': 0},{'Name': 'Michael','Price':10}]
>>> [i for i in Records if i['Price'] != 0]
[{'Price': 10, 'Name': 'Michael'}]
Run Code Online (Sandbox Code Playgroud)

看看Python的列表理解中的if/else是什么?了解有关在列表理解中使用条件的更多信息.


请注意,[提到下面 ]你也可以离开了检查值0.然而这也适用,如果PriceNone,因此你可以使用第一选择,如果你不能确定的值的数据类型Price

>>> [i for i in Records if i['Price']]
[{'Price': 10, 'Name': 'Michael'}]
Run Code Online (Sandbox Code Playgroud)

  • 你可以省略`不是0'部分(而且我会用`!= 0`代替,因为我相信等式比我更信任整数实习). (2认同)