我有一个清单:
list1 = [123, 'xyz', 'zara', 'abc']
print "Max value element : ", max(list1);
它给出了:
Max value element : zara
还请解释它如何在字符串列表和数字列表上进行比较。
答案 0 :(得分:10)
这实际上是一个很好的问题,答案取决于你是使用python2.x还是python3.x ... 你正在使用哪个python实现 1 < / SUP>
有关python如何比较不同类型的说明,请参阅here。该链接几乎说明了您需要知道的所有内容,但作为快速摘要:
1 希望您可以通过不确定性的数量看出这个定义并不是很明确,因此您应该尽量避免这种情况。
答案 1 :(得分:2)
list1=['2020','4','890','70','891','898']
max(list1)
->返回898
如果只有数字作为字符串包含,它将比较第一个最大数字,如果有两个(在这种情况下:三个以8开头的数字)-
它将寻找相同数字的第二个数字,并继续比较直到找到更大的数字。 因此返回898
答案 2 :(得分:1)
十进制数的结果可能看起来很奇怪。所以,我只想提一下这些,为其他人节省一些时间。
b=['79.68', '9.11', '5.75']
max(b)
--> '9.11'
发生这种情况是因为它比较了每个字符串中对应字符的ascii,我们可以通过以下方式进行确认:
[tuple(ord(j) for j in i) for i in b]
--> [(55, 57, 46, 54, 56), (57, 46, 49, 49), (53, 46, 55, 53)]
答案 3 :(得分:-1)
“命令”按字母顺序排列单词,返回字母列表底部的单词(对于记录,它不会更改顺序列表中的项目,这就是我在引号内写“订单”的原因:
list1 = ["kyle", "darius"]
max(list1)
- &GT;返回 kyle ,因为 k 位于 d
之后list2 = ["kaula", "kzla", "kayla", "kwala"]
max(list2)
- &GT;返回 kzla ,因为 k 在 ka 和 kw 之后按字母顺序排列
list3 = ["kyle", "darius", "janna", "set", "annie", "warwick", "bauuuuuu"]
max(list3)
- &GT;返回warwick
我正在使用python 3.7,当我尝试将字符串与数字混合时:
list4 = [13341412, "zara", "jane", "kada"]
max(list4)
我收到错误:
Traceback(最近一次调用最后一次):文件“”,第1行,in TypeError:'&gt;' 'str'和。实例之间不支持 'INT'
至少在python 3.7中,你不能将整数与字符串混合。