max()函数如何在python中的字符串列表上工作?

Tus*_*CSD 11 python string list

我有一个清单:

list1 = [123, 'xyz', 'zara', 'abc']
print "Max value element : ", max(list1);
Run Code Online (Sandbox Code Playgroud)

它给:

Max value element : zara
Run Code Online (Sandbox Code Playgroud)

还请解释它如何在字符串列表和数字列表上进行比较.

mgi*_*son 9

这实际上是一个很好的问题,答案取决于你是在python2.x还是python3.x ...... 以及你正在使用的python实现1.

有关python如何比较不同类型的说明,请参见此处.该链接几乎说明了您需要知道的所有内容,但作为快速摘要:

  • 相同类型的对象的比较就像你期望的那样.
  • 不同类型对象的比较按python2.x上的类型名称排序,并在python3.x上引发错误(除非定义了自定义比较运算符.)
  • 旧式类打破了所有规则,但不管怎样它们都不应该使用.

1希望你可以通过不确定的数量看出这个定义并不是很明确,所以你应该尽量避免这种情况.


fai*_*nts 5

它按字母顺序“订购”单词并返回位于字母列表底部的那个(为了记录,它不会更改列表中项目的顺序,这就是我在引号内写“订单”的原因):

list1 = ["kyle", "darius"]
max(list1) 
Run Code Online (Sandbox Code Playgroud)

--> 返回kyle因为kd之后

list2 = ["kaula", "kzla", "kayla", "kwala"]
max(list2) 
Run Code Online (Sandbox Code Playgroud)

--> 返回kzla因为kzkakw之后按字母顺序排列

list3 = ["kyle", "darius", "janna", "set", "annie", "warwick", "bauuuuuu"]
max(list3)
Run Code Online (Sandbox Code Playgroud)

--> 返回沃里克

我正在使用 python 3.7,当我尝试将字符串与数字混合时:

list4 = [13341412, "zara", "jane", "kada"]
max(list4)
Run Code Online (Sandbox Code Playgroud)

我收到一个错误:

回溯(最近一次调用):文件“”,第 1 行,类型错误:“str”和“int”的实例之间不支持“>”

至少在 python 3.7 中,不能将整数与字符串混合使用。