cmp(x, y): 2 つのオブジェクトを比較し、前者が後者より小さい場合は -1 を返し、等しい場合は 0 を返し、後者より大きい場合は 1 を返します。 .
Pythonのcmp比較関数比較原理
Pythonのcmp関数 同じ型同士でも、異なるデータ型同士でも比較できます。次に、Python の cmp 比較関数の戻り値に基づいて比較サイズを決定します。
>>> list1, list2 = [123, 'xyz'], [456, 'abc'] >>> cmp(list1, list2) -1 >>> cmp(list2, list1) 1 >>> list3 = list2 + [789] >>> list3 [456, 'abc', 789] >>> cmp(list2, list3) -1
上記の cmp 関数のいくつかの比較を観察すると、次のように要約できます:
Python の cmp 比較関数、2 つの類似したオブジェクトを比較する場合、比較操作は非常に直感的です。
数値と文字列の比較、それらの値を直接比較します。
シーケンス型の比較については、方法は同様です。 Python は、2 つのオブジェクトが基本的に比較できない場合に、公平な結果を生成しようとします。たとえば、2 つのオブジェクトに関係がない場合、または 2 つの型に比較する機能がまったくない場合、Python は「ロジック」に基づいて結論を下すことしかできません。比較のアルゴリズム:
1. 2 つのリストの要素を比較します。
2. 比較された要素が同じ型である場合、その値を比較します。同じ型ではない場合、それらが数値であるかどうかを確認します
a. 数値である場合は、必要な数値キャストを実行してから、もう一方の要素を比較します。 c. それ以外の場合は、タイプ名のアルファベット順で比較します。
4. 1 つのリストが最初に最後に到達すると、もう 1 つの長いリストが「より大きい」になります。
5. 両方のリストの要素がすべて枯渇し、すべての要素が等しい場合、結果は引き分けとなり、0 を返します。
これは Python の cmp 関数の比較原理です