max() 函数如何处理 python 中的字符串列表?

新手上路,请多包涵

我有一个清单:

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

它给:

 Max value element : zara

还请解释它如何对字符串列表和数字列表进行比较。

原文由 Tushar Patil 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 504
2 个回答

这实际上是一个很好的问题,答案会有所不同,具体取决于您使用的是 python2.x 还是 python3.x … 以及您使用的是哪个 python 实现 1 。

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

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

1希望你能从那里的不确定性中看出这并不是真正明确的定义,因此你应该尽量避免这种情况。

原文由 mgilson 发布,翻译遵循 CC BY-SA 3.0 许可协议

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

 list1 = ["kyle", "darius"]
max(list1)

–> 返回 kyle 因为 kd 之后

list2 = ["kaula", "kzla", "kayla", "kwala"]
max(list2)

–> 返回 kzla 因为 kz 按字母顺序排列在 kakw 之后

list3 = ["kyle", "darius", "janna", "set", "annie", "warwick", "bauuuuuu"]
max(list3)

–> 返回沃里克

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

 list4 = [13341412, "zara", "jane", "kada"]
max(list4)

我得到一个错误:

回溯(最近调用最后):文件“”,第 1 行,在 TypeError 中:’>’ 在 ‘str’ 和 ‘int’ 的实例之间不支持

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

原文由 fairly_oddparents 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题