3

重複の可能性:
Pythonはstringとintをどのように比較しますか?

私はPythonでいくつかの比較を行っていました。文字列を整数と比較できることに驚きました。次に、idを実行したところ、実際にはstringのidがintのidよりも大きいことがわかりました。これが、この出力を取得する理由だと思いました。

In [19]: 'a' < 3
Out[19]: False

In [20]: 'a'>3
Out[20]: True

In [17]: id('a')
Out[17]: 140414909035824

In [18]: id(3)
Out[18]: 23119752

この動作を正しく解釈していることを確認してください(Pythonはidレベルで比較しています)。

4

1 に答える 1

5

Python 2.xのクロスタイプ比較は、歴史的な偶然です。ドキュメントから:

(...)異なるタイプのオブジェクトは常に等しくなく、一貫して、しかし任意に順序付けられます

Python 3.xでは、これは修正されています-これらの比較は型エラーをスローします。

于 2012-05-05T12:16:42.260 に答える