Skip to main content
 首页 » 编程设计

python之返回字典中元组键给定元素的最大值

2025年05月04日17jpfss

我有一个以元组作为键的字典,我想获得可用的最大值,比如字典中当前元组键的第二个元素。例如,给定:

my_dict = {('a', 1):value_1, ('b', 1):value_2, ('a', 2):value_3, ('c', 3):value_4, ('b', 2):value_5} 

所以键的第二个元素的最大值是 3。

获取此值的最快方法是什么?

请您参考如下方法:

或者:

largest_key = max(my_dict, key=lambda x: x[1]) 

或者:

from operator import itemgetter 
largest_key = max(my_dict, key=itemgetter(1)) 

根据 DSM,迭代 dict直接比检索和遍历 keys() 更快或 viewkeys() .

我认为 Zverina 女士所说的是将您的数据结构从 dict 转换为与 tuple像这样的键:

my_dict = { 
    'a': { 
            1: value_1, 
            2: value_3 
         } 
    'b': { 
            1: value_2, 
            2: value_5 
         } 
    'c': { 
            3: value_4 
         } 
} 

那样的话,如果你想用 a 找到所有值的最大值,你可以简单地做:

largest_key = max(d['a']) 

无需额外费用。 (您的数据已经划分为子集,因此您不必在每次搜索时都将计算浪费在构建子集上)。

编辑

要将搜索限制在给定的子集中,请执行以下操作:

>>> subset = 'a' 
>>> largest_key_within_subset = max((i for i in my_dict if i[0] == subset), key=itemgetter(1)) 

在哪里(i for i in my_dict if i[0] == subset)是一个生成器,它只返回给定子集中的键。