Python中如何获取min函数选中的输入变量的对应名称?
Python取最小值同时获取对应变量名的简便实现
有两种基于原生min特性的简洁写法,不需要写if判断,和原生min的行为完全兼容:
方法1:打包值和名称直接传参(仅2个变量时最优)
利用Python元组按顺序比较的特性,把「变量值、变量名字符串」打包成元组传入min,可同时拿到最小值和对应的变量名:
OPN_24n4, selected_var = min((Node_23n3, "Node_23n3"), (Node_23n4, "Node_23n4")) # selected_var 就是被min选中的变量名称字符串
如果两个变量值相等,会默认返回参数列表中靠前的条目,和原生min行为完全一致。
方法2:字典映射实现(变量较多时更易扩展)
如果后续需要对比的变量可能新增,可以把变量名和值存入字典,通过min的key参数指定对比规则:
# key存变量名字符串,value存变量值 node_map = { "Node_23n3": Node_23n3, "Node_23n4": Node_23n4 } # 直接获取最小值对应的变量名 selected_var = min(node_map, key=node_map.get) OPN_24n4 = node_map[selected_var]
后续新增对比变量只需要在字典中加条目即可,不需要修改min的调用逻辑。
内容的提问来源于stack exchange,提问作者phosphorescent
相关产品推荐
相关产品推荐

