亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

為什么執行報錯了?

為什么報錯了http://img2.sycdn.imooc.com/5e833c540001a62612590593.jpg

正在回答

4 回答

from?functools?import?cmp_to_key


def?cmp(x,y):
????if?x>y:
????????return?-1
????elif?x<y:
????????return?1
????else:
????????return?0
result?=?sorted([1,3,5,2,0,4,9],key=cmp_to_key(cmp))
print(result)

版本問題 python3之后取消了你這種用法,新版本的自定義排序方法如上所示

5 回復 有任何疑惑可以回復我~
#1

爾爾66 提問者

懂了,就說為啥一直不對,按你寫的那樣執行是沒有問題 ???
2020-04-01 回復 有任何疑惑可以回復我~
#2

慕桂英9269908

可以的,新版本的python 指定函數只能有一個參數,把函數本身當作一個參數引入就好了,果然python的編程就是函數式編程。
2020-05-29 回復 有任何疑惑可以回復我~

只接受一個參數的函數,這個cmp函數有x,y兩個參數,這個課比較老了,你改成key=str.lower或者key=str.title。不要在用函數做參數

0 回復 有任何疑惑可以回復我~

直接在sorted()加個reverse=True參數,可以實現降序排序

0 回復 有任何疑惑可以回復我~

還是不對啊,數字排序正確夢幻成字符串就不行了啊

0 回復 有任何疑惑可以回復我~
#1

慕婉清2180903

def cmp_ignore_case(s1, s2): if s1[0].upper() > s2[0].upper(): return 1 if s1[0].upper() < s2[0].upper(): return -1 return 0 print sorted(['bob', 'about', 'Zoo', 'Credit'], cmp_ignore_case)
2020-05-14 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
python進階
  • 參與學習       255563    人
  • 解答問題       3038    個

學習函數式、模塊和面向對象編程,掌握Python高級程序設計

進入課程

為什么執行報錯了?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號