2012-02-20 16 views
2

文字列と内部的にPythonと比較される文字列と整数はASCIIコードと比較され、比較されます。それはどのようなものですか?str> intを知っていますが、起こる。あなたの例ではPythonの文字列とintの内部比較

""> 1

+3

可能な重複はありますか? http://stackoverflow.com/questions/9306285/how-does-python-compare-strings-and-integers – CppLearner

+0

[Pythonは文字列とintをどう比較するのですか?](http://stackoverflow.com/questions/) 3270680/how-does-python-compare-string-and-int) – jcollado

答えて

8

1 < "a" "i" はintためstringのための "s" の前にアルファベット順に来るので。 docsから

:異なる数値型と 異なる文字列型を除いて、異なるタイプの

オブジェクト、決して等しい比較。そのようなオブジェクトは一貫しているが任意に( の異種配列を並べ替えると一貫した結果が得られるように)並べ替えられます。

これはpython 3で変更されたものの1つと考えています(TypeErrorがここにあります)。


CPythonでどのように行われるかについては、数字以外の異なるタイプのオブジェクトは型名で順序付けられます。適切な比較をサポートしない同じ型のオブジェクトは、そのアドレスによって順序付けられます。 これはの実装の一部であり、言語の一部ではありません。

+0

+1と詳細は実装の詳細です。 –

-2

あなたは詳細を知るために作り付けの文字列オブジェクトの__gt__方法のソースを確認する必要がありますが、私の推測では、1str機能を使用して文字列に変換され、その後、2つを比較することです。