我有一个像这样的字典元素数组:

d = [{'k': 'k1', 'v':4}, {'k': 'k2', 'v':5}, {'k': 'k3', 'v':2}]

我想从具有最低'v'的字典元素中检索'k'的值,可能存在多个具有相同最低值的值。 在上面的例子的情况下,我想得到:

['k3']

这就是我迄今为止所拥有的,这是解决问题的最有效和最方便的方式(除了将两条线折叠成一条)?

m = min([x['v'] for x in d])                               
r = [x['k'] for x in d if x['v'] == m]    

谢谢。

===============>>#1 票数:2

删除不必要的列表推导并改为使用生成器表达式。

m = min(x['v'] for x in d)                               
r = [x['k'] for x in d if x['v'] == m]   

但是,有没有理由保留一个键值对列表,而不是一个dict (要有多图?)

d = {'k1':4, 'k2':5, 'k3':2}
m = min(d.itervalues())                        
r = [k for k, v in d.iteritems() if v == m]   

===============>>#2 票数:0

r = min(d, key=lambda x: x["v"])["k"]

这应该给你'k3'

  ask by IUnknown translate from so

未解决问题?本站智能推荐:

5回复

在Dicts列表中,找到常见Dict字段的min()值

我有一个像这样的词典列表: 我想找到min()和max()价格。 现在,我可以使用带有lambda表达式的键(在另一篇SO文章中找到)轻松地对此进行排序,所以如果没有其他方法我就不会卡住。 然而,从我所看到的,几乎总是在Python中有一个直接的方式,所以这是我学习更多东西的机会。
2回复

每个dict键具有值的dicts列表中的最大值和最小值

我发现的所有答案似乎都要让你必须指定你想要找到最大/最小值的键,例如在一个dicts列表中查找最小值 。 我有一个dicts列表,如: 所以这里它将拉出12和8991。 我想找到这个dicts列表中所有值的最大值和最小值。 如何在不必单独指定每个键的情况下执行此操作(例
4回复

根据多个值过滤字典列表

我有一个字典列表,我想根据多个标准进行过滤。 列表的缩短版本如下所示: 我希望最终得到一个列表,其中包含具有相同“名称”键的每个字典的最低价格的字典。 例如,以上将成为: 我已经用嵌套的if语句和for循环来完成这个,但是我希望有更多的“Pythonic”方法来实现。
2回复

最小的元组列表字典

好的,所以我试图编写一个函数,该函数将字典作为参数并返回一个元组列表,其中第一项是键,第二个值是最低值。 同样,如果字典的值是空的,则元组在该位置应为False。 如何工作的示例: 所以我想做的就是将字典变成一个列表,然后从那里得到最小值,但是我不知道该怎么做,因为我得到了所有值的列
4回复

c#字典返回多个最小值

如果超过1,如何从字典中获得超过1分钟/最大值? 我知道你必须转换.ToList所以你可以使用min / max,但是当我这样做时它只给出了它遇到的第一个满足最小/最大要求的值。
4回复

在3个不同的字典中查找MIN和MAX值

我将3年的统计数据存储在3个词典中。 我想找到3年内每个月的最小值。 例如,一月份为10。二月份为15。 我需要将结果存储在新字典中。 例如,{“一月”:12,“二月”:15,...} 我应该如何进行?
1回复

使用min从字典中获取最低的键和值[重复]

这个问题已经在这里有了答案: 获取对应于字典中最小值的键 15个答案 字典: 我已经成功使用以下代码确定了最低的键: 输出: 我想使输出也包含该值: A, 240 注意事项 : 如果可能,我想避免使用lambda
2回复

Python字典最小最大

我对此代码有一个疑问:dict中的元素数量在每次迭代中都不同: 如果“ one”,“ twor”等的值不同,则一切正常。 现在假设以下内容: 我想要以下结果:如果值相等,则minkey,minvalue应该与maxkey,maxvalue不同(如果有多个相等的条目,则它应该
2回复

Python函数根据嵌套字典结构中的单个属性查找最小/最大

以下数据表示形式: 从此循环生成: 基于看起来或多或少的数据 ,如下所示: 我试图在每个字典中找到第二个值的最大值,即 如何才能从该套嵌套词典中访问所有第二个值(看起来像u'90000' ),记录并输出max和min ? 精确定义术语:在上例中,即:
1回复

Python:确定包含列表/元组的字典中的最小值

我有以下充满城市名称的字典,作为键,存储在元组中的伪坐标以及相应的成对累积距离值。 我正在尝试编写一个函数,该函数返回距离值最小的键的字典项,在这种情况下为29.550506953719747。 我的字典: 所需的输出: 当前方法: 返回: