python - 向 lambda 函数添​​加额外的逻辑以从 python 字典中获取最小值

标签 python dictionary lambda

我有一个字典,其中的值将一些对象映射到一个整数;例如{节点:1,节点:2}。

我想获取对应于该字典中最小值的键,我知道我可以这样做:

min_key = min(my_dict, key=lambda k: my_dict[k])

但是,我还想添加一个约束,即 key 不包含在其他一些集合中。这是我希望工作的伪代码:

min_key = min(my_dict, key=lambda k: my_dict[k] where k not in my_set)

有没有一种方法可以将其作为 lambda 的一部分在 python 中编写为单行代码,或者我现在是否必须显式循环遍历字典并像这样在循环中添加逻辑?

min_key, min_value = None, float('inf')
for k,v in my_dict.items():
    if v < min_value and k not in my_set:
        min_key = k
return min_key

最佳答案

my_dict 替换为返回过滤后字典的字典理解。

min_key = min({k:v for k, v in my_dict.items() if k not in my_set}, 
                key = lambda k: my_dict[k])

关于python - 向 lambda 函数添​​加额外的逻辑以从 python 字典中获取最小值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70298673/

相关文章:

python - 如何从python中的键值对中搜索键

python - 过了午夜怎么知道时差? Python

python - 使用 Pandas 将列添加到数据透视表

c++ - 从变量映射键和值初始化

intellij-idea - cucumber ,Java8 : find usage of step defined by lambda expression

c++ - 更新 C++ vector 中的所有元素

java - Java 8 流中的非干扰确切含义

python - 当顺序很重要时如何从元组列表中删除重复项

python - 如何在 Raspberry Pi 上使用多重处理将数据发送到网站的同时接收来自传感器的数据?

c++ - 我需要什么类型的数据结构来链接到多个参数