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

GeeksForGeeks中Python max()函数示例与实际运行结果不符的疑问

关于Python max()函数字符串比较的疑问与验证

我在学习Python的max()函数key参数时,看到两篇相关文章,其中第一篇里的示例2提到:“默认情况下,max()会返回字典序(lexicographic value)最大的字符串”,并给出如下代码,声称运行结果为"for":

var1 = "geeks"
var2 = "for"
var3 = "geek"
 
max_val = max(var1, var2, var3)
print(max_val) 
# 文章标注结果:"for"

但我在IDE中运行这段代码,实际结果却是"geeks"。我查阅了Python官方文档也没找到相关矛盾点,之后自行做了几组测试,结果都符合字典序预期:

var1 = "geeks"
var2 = "for"
var3 = "geek"

print(max(var1, var2, var3))
# 输出 "geeks"

lst1 = ["geeks", "for", "geek"]
print(max(lst1)) 
# 输出 "geeks"

print(max('aa','az')) 
# 输出 'az',符合字典序(字母序)规则

结论

Python中字符串的字典序比较基于字符的Unicode码点,'g'的码点(103)大于'f'的码点(102),所以"geeks"的字典序必然大于"for"。不存在我遗漏的特殊规则,完全是该文章的示例结果描述错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 02:40:27