Python 3中實現cmp 函式的功能

2021-09-03 02:08:52 字數 1499 閱讀 2637

cmp()函式是python 2中的乙個用於比較兩個列表, 數字或字串等的大小關係的函式, 在python 3中已經無法使用這個函式了:

>>> a = [1, 2, 3] 

>>> b = [4, 5, 6]

>>> cmp(a, b) traceback (most recent call last): file "", line 1, in 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碼表為基準, 從兩個列表中的第乙個字元開始進行比較, 返回值為布林型別.

Python3 中實現flattten函式

最近歲資料集進行處理的時候需要把多維資料轉換為一維的,但是python3中 已經不支援flatten函式了,所以自己寫了乙個把多維陣列轉換為一維陣列的函式。requires authorization coding utf 8 defflatten input list output list wh...

python3中實現函式的過載

python中是不支援函式過載的,但在python3中提供了這麼乙個裝飾器functools.singledispatch,它叫做單分派泛函式,可以通過它來完成python中函式的過載,讓同乙個函式支援不同的函式型別,它提供的目的也正是為了解決函式過載的問題。看下面的例子,應該知道怎麼去使用它完成函...

python3中內建函式

完整的內建函式及其說明參考官方文件 完整的內建函式及其說明參考官方文件 1 通用內建函式 id 函式 檢視物件的記憶體位址 help 函式 檢視幫助資訊 type 函式 檢視物件的型別 不會認為子類是一種父類型別 isinstance 函式 檢視物件型別 會認為子類是一種父類型別 dir 函式 檢視...