文字列も、数値とおなじように == や < などの比較演算子で比較できます。
== 演算子は、2つの文字列がおなじ値のとき、ブール値の True を返します。
また、<、<= などの比較演算子は、辞書で単語が並ぶ順番とおなじように文字列の大小を比較します。
しかし、数値の比較ではどちらが大きいか、というのは明確ですが、文字列の比較ではあまり明確ではありません。文字の a は b よりも小さい、というのは納得がいきますが、a と大文字の A はどちらが小さいでしょうか? また、漢字の 天 と 地 では、どちらが小さいでしょうか?
こういった問題から、文字列同士の比較では、人間の感覚とはことなった比較結果となる場合があるので注意してください。一般的には、半角の数字やアルファベットの比較は、次のような結果になり、安心して利用できます。
- 数字は、文字の
0が最小、9が最大(0 < 1 < 2 < ... < 9) - アルファベットでは、
aが最小、zが最大 (a < b < c < ... < z) - 大文字は小文字より小さい (A < a, B < b, ...)
- 数字は、アルファベットよりも小さい (0 < 9 < A)
などのルールがあります。
次の例では、1で始まる文字列 123は、4ではじまる 456より小さいです。
In [15]:
'123' < '456'
Out[15]:
また、大文字 < 小文字 なので、小文字で始まる pythonは、大文字で始まるPythonよりも大きくなります。
In [14]:
'python' < 'Python'
Out[14]:
数字 < アルファベットので、1で終わる Python-1 は、aで終わる Python-a よりも小さくなります。
In [17]:
'Python-1' < 'Python-a'
Out[17]: