11

Python 3 では、文字列と int (例: ) を並べ替えようとすると1 > "1"、TypeError がスローされます。文字列を int と比較して等しいかどうかを調べてもエラーが発生しないのはなぜですか? (例1=="1") 文字列を int と比較することが理にかなっている例は何ですか? JavaScript と SQL が異なるアプローチを取るのはなぜですか?

関連: Python は string と int をどのように比較しますか?

4

3 に答える 3

7

これにより、たとえば、混合タイプのキーを含む辞書を作成できます。

比較できず1"1"平等である場合、それらを同じ辞書のキーとして使用することはできません。

現状では、それらを比較することができ、それらは常に等しくないものを比較します:

オブジェクトは同じタイプである必要はありません。両方が数値の場合、それらは共通のタイプに変換されます。それ以外の場合、異なるタイプのオブジェクトは常に等しくなく、一貫して、しかし任意に順序付けられます。

于 2012-05-16T11:42:28.420 に答える
6

TypeError比較不可能なオブジェクトで順序付けが発生する理由は、それが役立つかどうかについての予測ではなく、賢明な答えがないことを表すためです。この論理では、「2 つの比較不可能なオブジェクトは等しいか」という答えがある限り、同等性テストを許可することは理にかなっています。(そうではありません)。たとえば、http://www.gossamer-threads.com/lists/python/dev/919516を参照してください。

于 2012-05-16T11:55:54.763 に答える