这很容易通过几个循环来做到这一点,但我相信有一种更有效的方法来实现这一点,我很想学习。
考虑以下 dict 数组,它表示从 nosql 数据库中提取的数据。
x = [
{
"loc" : "alpha",
"tag" : 1,
"dist" : 5
},
{
"loc" : "bravo",
"tag" : 0,
"dist" : 2
},
{
"loc" : "charlie",
"tag" : 5,
"dist" : 50
},
{
"loc" : "delta",
"tag" : 4,
"dist" : 2
},
{
"loc" : "echo",
"tag" : 2,
"dist" : 30
},
{
"loc" : "foxtrot",
"tag" : 4,
"dist" : 2
},
{
"loc" : "gamma",
"tag" : 4,
"dist" : 2
},
{
"loc" : "hotel",
"tag" : 0,
"dist" : 2
},
]
我想找到所有具有最低 'dist' 值的项目,并且如果有多个具有相同最低值的 dict,我希望对具有相同最低值的 dict 最多的属性 'tag' 进行分组.
例如,上面所需的返回数据是:
r = [
{
"LocationName" : "delta",
"tag" : 4,
"dist" : 2
},
{
"loc" : "foxtrot",
"tag" : 4,
"dist" : 2
},
{
"loc" : "gamma",
"tag" : 4,
"dist" : 2
}
]
总结:dist:2 是最低值,[bravo, delta, foxtrot, gamma, hotel] 的dist 都是2,[bravo, hotel] 的标签是:0,[delta, foxtrot, gamma] 的标签都是的:4。返回一个 dicts [delta, foxtrot, gamma] 数组,因为它们有更多具有相同匹配标签和最低 dist 的。
我正在使用 python 3.6。
POPMUISE
BIG阳
相关分类