You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取列表排序后首个元素对应的原变量名?

解决方案

问题的核心是:单独将值存入列表排序后,会丢失值与原变量名的关联关系,因此必须先保留变量名-值的映射,再进行排序操作。

方法一:使用字典存储映射(推荐,支持重复值)

直接用字典保存变量名和对应的值,再按值排序,排序后直接获取原变量名:

# 定义原始变量
orderA = 3
orderB = 7
orderC = 4
orderD = 2

# 构建变量名与值的映射字典
order_mapping = {
    'orderA': orderA,
    'orderB': orderB,
    'orderC': orderC,
    'orderD': orderD
}

# 按值从小到大排序,返回(变量名, 值)的元组列表
sorted_items = sorted(order_mapping.items(), key=lambda item: item[1])

# 获取排序后第一个元素的原变量名
target_var_name = sorted_items[0][0]
target_value = sorted_items[0][1]

print(f"排序后最小的值对应的原变量名:{target_var_name},值为:{target_value}")

运行结果会输出:排序后最小的值对应的原变量名:orderD,值为:2

方法二:值到变量名的反向映射(仅适用于值唯一的场景)

如果确定所有变量值不重复,可以先创建值到变量名的反向字典,再通过排序后的值查找变量名:

# 定义原始变量
orderA = 3
orderB = 7
orderC = 4
orderD = 2

# 构建值到变量名的反向映射
value_to_var = {
    orderA: 'orderA',
    orderB: 'orderB',
    orderC: 'orderC',
    orderD: 'orderD'
}

# 将值存入列表并排序
order = [orderA, orderB, orderC, orderD]
order.sort()

# 通过排序后的值查找原变量名
first_value = order[0]
target_var_name = value_to_var[first_value]

print(f"排序后第一个值对应的原变量名:{target_var_name}")

注意:如果存在多个变量值相同的情况,反向字典会覆盖重复值对应的变量名,导致结果错误,因此不推荐这种方法。

内容的提问来源于stack exchange,提问作者SomeonenamedPratik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 06:15:43