2013-04-20 41 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