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

如何使用min()和max()函数输出变量名而非变量值?

如何使用min()和max()函数输出变量名而非变量值?

嘿,我明白你现在的困扰啦——你现在用min()和max()只能拿到列表里的数值,但想要的是对应的变量名对吧?咱们来一步步解决这个问题~

首先你得知道,当你把card_5、card_6这些变量放进列表player_card_list的时候,列表里存储的其实是这些变量的值,而不是变量名本身。所以min()和max()自然只能返回数值,没法直接拿到变量名。

那要解决这个问题,咱们可以用字典来存储变量名和对应的值,这样就能把名字和值绑定在一起啦。比如这样写:

# 用字典存储变量名和对应的值
player_cards = {
    "card_5": 3,
    "card_6": 4,
    "card_7": 5,
    "card_8": 6
}

# 找到值最小的键(也就是变量名)
min_player_card_name = min(player_cards, key=player_cards.get)
# 找到值最大的键
max_player_card_name = max(player_cards, key=player_cards.get)

# 输出看看结果
print("最小的卡片变量名:", min_player_card_name)
print("最小的卡片值:", player_cards[min_player_card_name])
print("最大的卡片变量名:", max_player_card_name)
print("最大的卡片值:", player_cards[max_player_card_name])

这里的关键点是min()和max()的key参数,我们传入player_cards.get,意思是根据字典里每个键对应的值来比较大小,最后返回的就是对应的键(也就是你想要的变量名)。

如果你还是想保留原来的单个变量,也可以把变量名和值一起放进元组列表里,比如:

card_5 = 3
card_6 = 4
card_7 = 5
card_8 = 6

# 用元组列表存储(变量名,值)
player_card_list = [("card_5", card_5), ("card_6", card_6), ("card_7", card_7), ("card_8", card_8)]

# 找到值最小的元组,然后取第一个元素(变量名)
min_player_card = min(player_card_list, key=lambda x: x[1])[0]
max_player_card = max(player_card_list, key=lambda x: x[1])[0]

print("最小的卡片变量名:", min_player_card)
print("最大的卡片变量名:", max_player_card)

这里我们把每个变量名(字符串形式)和它的值组成元组放进列表,然后用lambda函数指定按元组的第二个元素(也就是值)来比较,最后取元组的第一个元素就是变量名啦。

两种方法都能实现你想要的效果,推荐用字典的方式,因为结构更清晰,操作起来也更方便哦~

备注:内容来源于stack exchange,提问作者Jukezy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.21 14:57:58