ホームページ  >  記事  >  バックエンド開発  >  Pythonの組み込み比較関数cmpの比較原理の解析

Pythonの組み込み比較関数cmpの比較原理の解析

高洛峰
高洛峰オリジナル
2016-10-18 09:33:451385ブラウズ

Pythonの組み込み比較関数cmpの比較原理の解析

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 関数の比較原理です

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。