筛选字典中的条目

2024-04-19 20:50:24 发布

您现在位置:Python中文网/ 问答频道 /正文

有没有一种方法可以返回内部dict值与特定条件匹配的键列表

给出一个python dict:

adict = {
    1: {'process':False, 'length':10},
    2: {'process':True, 'length':34},
    ...,
    n: {'process': False, 'length: -3'}
}

有没有办法让我得到一个关键字列表[1,2,6…]谁的内在决定符合我想要的标准?在

^{pr2}$

我知道我可以简单地“循环”我的字典,但是有更好的方法吗?还有

如何格式化某些筛选和格式化criteria1以使其正常工作?
只需输入criteria1=“process=True”,就不起作用了?在


Tags: 方法falsetrue列表标准字典关键字process
3条回答

以下是一种方法:

adict = {1: {'process':False, 'length':10}, 2: {'process':True, 'length':34}, 3:{'process': False, 'length': -3}}

def somefiltering(filterDict, *criteria):
    return [key for key in filterDict if all(criterion(filterDict[key]) for criterion in criteria)]

请注意,somefiltering函数需要将字典作为参数。在

用法示例:

^{pr2}$

给定一个名为criteria的可调用项列表,下面的筛选器表达式将只列出其对应值满足所有条件的dict键。在

filter(lambda key: all(crit(adict[key]) for crit in criteria), adict.keys())

如果你需要钥匙清单

[k for k,v in adict.items() if creterion(v)]

并对2.x使用dict.iteritems()

相关问题 更多 >