答えて
を、異なるタイプのオブジェクトのデフォルトの比較は、オブジェクトポインタをキャストすることによって得られたそれらの種類のIDを(使用して比較することです整数へ)。ここでは、ソースへのリンク:私のビルドでhttp://hg.python.org/cpython/file/2.7/Objects/object.c#l757
、ここではタイプの順序は次のとおりです。(コンプレックスを除く)
>>> sorted([bool, int, float, long, list, tuple, dict, str, unicode])
[<type 'bool'>, <type 'float'>, <type 'int'>, <type 'list'>, <type 'long'>,
<type 'dict'>, <type 'str'>, <type 'tuple'>, <type 'unicode'>]
数字は数値に基づいて、クロスタイプの比較を可能にする方法を比較している(つまり、 floatはintと比較できます)。
なしオブジェクトは特別です。それは他のすべてよりも少なく比較します。
を使用し、それをすべて一緒に入れて確認するには、発注確認するためにをソート:
>>> sorted(zoo)
[None, -5, -5.0, 0, 0.0, -0.0, False, True, 10, 10.0, 11.5, {},
{'abc': 10}, {'lmno': 20}, [], [1, 2], [1, 2, 3], [1, [2, 3]],
'', u'', 'alpha', u'alpha', 'bingo', 'cat',(), (1, 2),
(1, 2, 3), (1, (2, 3)), u'bingo', u'cat']
これは、2つの要素のためwhatever the >
operator doesを行います。
異なるタイプのオブジェクトは、タイプの文字列表現と特別なロジックを使用して比較されます。詳細についてはRaymondのanswerを参照してください。パイソン3において
このコードは例外が発生します:Python2で
Traceback (most recent call last):
File "prog.py", line 1, in <module>
max([1,52,53],[1,'3'])
TypeError: unorderable types: str() > int()
を申し訳ありませんが、これは正しくありません。デフォルトの比較では、型の文字列表現は使用されません。 –
「タイプの文字列表現」は何ですか? –
'>>>なし> 1 ' ' False' –
- 1. PHP関数 - 最大引数数
- 2. Python LASSO非ゼロ係数の最大数
- 3. 多くのパラメータ(python)を持つ関数を最大化
- 4. Python関数の構成(最大再帰深度エラー、スコープ?)
- 5. Python関数による最大*メモリ使用量の追跡
- 6. 関数のオーバーロードの最大数は?
- 7. Maple、数値関数の最大値
- 8. Python関数の引数の最大数はいくらですか?
- 9. Rは、Pythonでは(Pythonでのように)別の関数をキーと最大、
- 10. Pythonバイナリツリー最小値関数
- 11. ファイル内のPythonの最大の整数
- 12. Pythonリピートリストから最大要素数
- 13. Python:文字列の偶数桁を最大に見つける関数
- 14. パイソン:範囲内の関数の最大
- 15. キャスト関数の最大列はR
- 16. azure関数の最大実行時間
- 17. Sql Min最大範囲関数オーバー?
- 18. fminsearchで関数を最大化
- 19. DLL内の関数名の最大長
- 20. PDDLの関数を最大化する
- 21. 関係代数の最大値
- 22. 関数による最大化
- 23. 最大値の関数の出力
- 24. 最大配列のネスト間接関数
- 25. Matlabの関数を最大化
- 26. Python:関数の最大値を設定して、配列内の次の値の最大値を調べます。
- 27. Python:最大サブアレイSum
- 28. 相関サブクエリ、最大
- 29. Pythonの辞書から最大スコアの関数を定義します
- 30. ラムダ関数を使ってPythonのリストの最大値を調べる
詳細をありがとう:) –
ありがとう! しかし、[1] <(1)はfalseを返します。どんな考え? –
@Sagar、 '(1)'は実際にはintであることに注意してください。 Python構文によれば、コンマをタプルとして区別する必要があるので、 '[1] <(1、)'を試してみてください。それでもリストとタプルは異なる型のオブジェクトなので、おそらくそれらの型のIDを使って比較されます。 –