Python 3中實現cmp()函式的功能
阿新 • • 發佈:2018-12-15
本文由荒原之夢原創,原文連結:http://zhaokaifeng.com/?p=1088
cmp()
函式是Python 2中的一個用於比較兩個列表, 數字或字串等的大小關係的函式, 在Python 3中已經無法使用這個函數了:
>>> a = [1, 2, 3] >>> b = [4, 5, 6] >>> cmp(a, b) Traceback (most recent call last): File "<pyshell#60>", line 1, in <module> cmp(a, b) NameError: name 'cmp' is not defined >>>
在Python 3中, 使用operator
模組來實現同樣的功能. 無論是在互動模式還是在文字模式下, 要使用operator
模組都需要先匯入該模組:
import operator
在互動式模式下可以這樣使用:
>>> a = [1, 2]
>>> b = [1, 3]
>>> import operator
>>> operator.eq(a, b)
False
>>>
但是如果我們在文字模式下也這樣使用:
a = [1, 2] b = [1, 3] import operator operator.eq(a, b)
Run之後並沒有任何回顯:
=================== RESTART: C:/Users/Master/Desktop/1.py ===================
>>>
如果要實現互動式模式下一樣的回顯, 需要使用print()函式輸出:
a = [1, 2]
b = [1, 3]
import operator
print(operator.eq(a, b))
回顯如下:
=================== RESTART: C:/Users/Master/Desktop/1.py =================== False >>>
operator
模組的功能如下:
函式 | 含義 |
---|---|
operator.lt(a, b) | a < b |
operator.le(a, b) | a <= b |
operator.eq(a, b) | a == b |
operator.ne(a, b) | a != b |
operator.gt(a, b) | a > b |
operator.ge(a, b) | a >= b |
比較大小的規則是以ASCII碼錶為基準, 從兩個列表中的第一個字元開始進行比較, 返回值為布林型別.