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