我發現列表大於號碼。Python列表大於號碼
>>> [1,2,3] > 1000
True
有沒有一些原因,爲什麼這個工程?我無法通過int([1,2,3])
將列表轉換爲int。 int不能轉換爲list(1000)
的列表。那麼python如何比較兩者呢?
我發現列表大於號碼。Python列表大於號碼
>>> [1,2,3] > 1000
True
有沒有一些原因,爲什麼這個工程?我無法通過int([1,2,3])
將列表轉換爲int。 int不能轉換爲list(1000)
的列表。那麼python如何比較兩者呢?
在這種「不匹配」類型的情況下,類型按字典順序按名稱列出:「列表」以字母順序排在「int」後面,因此它更大。
CPython實現細節:除 之外的不同類型的對象按其類型名排序;不支持正確比較的相同類型的對象 按其地址排序。 (source)
沒有爲排序(除了事實是一致的),沒有語言規範。恰巧CPython是最常見的實現,其中有這種語言細節按類型名按字典順序排列。
大多數內置類型比較不平等,除非它們是同一個對象的其他對象;一個對象被認爲是小於還是大於另一個的選擇是任意的,但是在程序的一次執行中是一致的。
這是否適用於Python 3? –
@Mike,no。你會得到一個TypeError –
**發現它:**埋在[PEP 3100](http://www.python.org/dev/peps/pep-3100/):「除了== ==和'以外的比較! ='在不同類型之間會引發一個異常,除非類型明確支持「 –