我可以像这样过滤下面的字典:
data = {
1: {'name': 'stackoverflow', 'traffic': 'high'},
2: {'name': 'serverfault', 'traffic': 'low'},
3: {'name': 'superuser', 'traffic': 'low'},
4: {'name': 'mathoverflow', 'traffic': 'low'},
}
traffic = 'low'
for k, v in data.items():
if v['traffic'] == traffic:
print k, v有没有其他方法可以进行上述过滤?
发布于 2010-04-28 05:26:48
在某种程度上,过滤器必须完全按照您的描述进行操作。如果要对值进行筛选,则必须逐个处理每个值。
发布于 2010-04-28 05:26:37
当然,但它们都是暴力的。
dict((k, v) for (k, v) in data.iteritems() if v['traffic'] == traffic)发布于 2010-04-28 05:30:46
如果你经常这样做,你可以有两个字典,每个方向一个。新字典将值映射到值列表。如果您要多次执行此反向查找,这是一个好主意。
https://stackoverflow.com/questions/2725248
复制相似问题