如何在Python中获取可迭代对象中值最高的元素对应的变量名
Python实现方案
我们可以借助Python内置的inspect模块解析调用上下文获取变量名,再比对数值大小返回结果,具体实现如下:
import inspect def pick_highest(*args): # 获取调用当前函数的栈帧信息 call_frame = inspect.currentframe().f_back # 提取调用语句的原始代码 call_code = inspect.getframeinfo(call_frame).code_context[0].strip() # 解析得到传入的所有变量名 args_str = call_code[call_code.find('(')+1 : call_code.rfind(')')] var_names = [item.strip() for item in args_str.split(',')] # 配对变量名和对应值,返回值最大的变量名 return max(zip(var_names, args), key=lambda item: item[1])[0]
测试运行代码:
variable1 = 1000 variable2 = 242 variable3 = 87509 highest_number = pick_highest(variable1, variable2, variable3) print(highest_number)
运行输出:
variable3
注意事项
- 调用
pick_highest时请直接传入变量名,不要在参数位置嵌套其他运算表达式,否则会导致变量名解析错误 - 若存在多个变量数值相同且均为最大值,会返回参数列表中第一个出现的对应变量名
内容的提问来源于stack exchange,提问作者UNKNOWN
相关产品推荐
相关产品推荐

