A. python3.x運用cmp()函數進行高級排序報錯
numbers.sort這種用法是錯誤的,如果你想要排序,則用如下語句:
num_sort=sorted(numbers,key=None,reverse=False)
新的list num_sort才是一個排序後的列表。然後,你自定義的cmp過程只能對比兩個數字,而能對比列表中的各個元素,python3解釋器不知道你要做什麼,所以才會出錯。
B. python cmp import什麼模塊
cmp是Python2.x自帶的比較函數,無需import模塊。
官方手冊說明:
cmp(x, y)
Compare the two objects x and y and return an integer according to the
outcome. The return value is negative if x < y, zero if x == y and
strictly positive if x > y.
如下所示:
python3.x則取消了這個函數,以下是官方說明:
The cmp() function should be treated as gone, and the __cmp__() special method is no longer supported. Use __lt__() for sorting, __eq__() with __hash__(), and other rich comparisons as needed. (If you really need the cmp() functionality, you could use the expression (a > b) - (a < b) as the equivalent for cmp(a, b).)
大意就是cmp()函數已經「離開」了,如果你真的需要cmp()函數,你可以用表達式(a > b) - (a < b)代替cmp(a,b)
C. Python:s.sort([cmp[, key[, reverse]]])
s.sort([cmp[,key[,reverse]]])
意思是sort方法接受三個參數,都可以省略,默認是升序排序。
第一個參數cmp 是 比較函數,兩個參數(列表的元素)怎樣比較,對於整數這種內置類型的比較,方法很直觀,但是對於自定義類型的比較,就要自己定義比較函數了,函數返回 0 ,就是兩個數相等,返回負數,就是第一個參數小,第一個參數就排在第二個參數後面了。
第二個參數 key 是比較列表元素的什麼屬性。
第三個參數reverse是bool型,意思是是否反轉(倒序排序)
s=[1,2,3,4,5]
s.sort(reverse=True)
prints
#或者直接reverse
s=[1,2,3,4,5]
s.reverse()
prints
#cmp函數,兩個數倒過來比較
s=[1,2,3,4,5]
s.sort(cmp=lambdaa,b:cmp(b,a))
prints
#key,把元素取反來比較
s=[1,2,3,4,5]
s.sort(key=lambdaa:-a)
prints
再做下廣告:
Python學習網站:http://cpython.net
Python在線教程:http://cpython.net/tutorial/
Python Online Judge:http://cpython.net/oj/
D. 在python 3.5中,cmp(a,b)被代替為(a>b)-(a<b),請解釋下(a>b)-(a<b)是什麼意思
原來的cmp函數,cmp(a,b):如果 a < b 返回 -1, 如果 a == b 返回 0, 如果 a > b 返回 1
計算機中判斷結果True用1表示,False用0表示。
我們先不妨設a>b,
那麼a >b=1,a<b=0
那麼(a>b)-(a<b)=0
同理可得到a==b輸出0,a<b輸出-1
E. Python引用compare函數要導入什麼包
cmp是python的內建函數。
cmp(x, y) 用於 compare x 和 y的值。
sort(cmp)只是用於說明,python中函數也是可以作為參數傳入其他函數來進行調用的,排序的依據就是cmp。
F. python編程中cmp()函數是什麼意思
cmp就是一個比較的方法,python3.x已經去掉了這個多餘的東西
G. python3.5中cmp怎麼用
python 3.4.3 的版本中已經沒有cmp函數,被operator模塊代替,在交互模式下使用時,需要導入模塊。
在沒有導入模塊情況下,會出現:
相關推薦:《Python視頻教程》
看下面給的內置函數:
這幾個函數就是用來替換之前的cmp的,之前使用cmp的同胞們,咱們以後就換上面這些函數咯。
先簡單說下這幾個函數的意思吧。
lt(a,b) 相當於 a<b 從第一個數字或字母(ASCII)比大小
le(a,b) 相當於a<=b
eq(a,b) 相當於a==b 字母完全一樣,返回True
ne(a,b) 相當於a!=b
gt(a,b) 相當於a>b
ge(a,b) 相當於 a>=b
函數的返回值是布爾類型。
H. 關於Python中的compare(x,y)
cmp(x,y) 就是compare(x,y)
numbers.sort(cmp),意思是對numbers這個list進行排序,其中排序使用的規則是cmp
I. Python中字典的內建函數用法是什麼
字典內置函數&方法
Python字典包含了以下內置函數:
1 cmp(dict1, dict2)
比較兩個字典元素。
2 len(dict)
計算字典元素個數,即鍵的總數。
3 str(dict)
輸出字典可列印的字元串表示。
4 type(variable)
返回輸入的變數類型,如果變數是字典就返回字典類型。