2013-04-20 42 views
2

我试图在列表中找到元素的最大值,但在列表中包含另一个列表项时发现了一些奇怪的事情。列表项存在时的Python列表最大值函数

code.py

a=[[1,2],3,4] 
max(a) 
[1,2] 

如何最大功能在上面的工程的工作?

如何列表元素被假定为最大元素...

感谢您的帮助。

回答

4

在Python 2,无与伦比的类型之间的比较返回一个无意义的(但一致的)结果:

>>> [1,2] > 3 
True 

max使用这些比较,找到最大的元素,在这种情况下,恰好是列表中。

has been fixed在Python 3,在那里你会得到:

>>> max([1,2], 3, 4) 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
TypeError: unorderable types: int() > list() 
+2

如果是一致的,即确定性,因此,它不是真正随机的。 – poke 2013-04-20 22:32:55

+0

@poke公平点。开始毫无意义。 – phihag 2013-04-20 22:46:31

+0

也许你可以扩展这个答案来解释行为,因为它将适用于max()函数? – BlackVegetable 2013-04-20 22:56:54