Man*_*edi 1 python list max python-2.7
当我尝试max()在包含整数和字符串组合的列表上调用函数时,它总是返回一个字符串,在Python 2.x中
例如,
#input
li = [2, 232322, 78, 'python', 77]
max(li)
#output
'python'
Run Code Online (Sandbox Code Playgroud)
这背后的逻辑似乎是什么?Python如何将字符串与整数进行比较?
在python2中,字符串和数字以任意但一致的顺序进行比较.
请参阅比较
除了不同的数字类型和不同的字符串类型之外,不同类型的对象永远不会相等; 这些对象是一致但任意排序的(因此排序异构数组会产生一致的结果
在python3中,这会引发类型错误.
TypeError: unorderable types: str() > int()
Run Code Online (Sandbox Code Playgroud)