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

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

此處為什么需要cmp=lambda這樣寫?

如題,為什么是cmp=lambda s1,s2:cmp(。。。)這樣寫。具體意義是什么?我試了下,去掉“cmp=”就不可以了?為什么?不太明白這個程序。求指點

正在回答

5 回答

sorted方法是有三個參數,cmp就是其中的一個。cmp本身是一個比較函數。這兒之所以這么寫是想重寫比較的方式,所以寫了一個lambda表達式重新定義cmp。

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

樓上也說了,sorted 方法是需要三個參數的 array, key, cmp

cmp=lambda s1,s2:cmp(。。。)

cmp 就是其中一個參數。

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

對,參考文檔里有關于sorted的方法,是需要三個參數的

sorted(iterable[, cmp[, key[, reverse]]])


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

可以,但要指定key,查看sorted函數是有三個參數的,指定key和指定cmp效果一樣

>>> help(sorted)

Help on built-in function sorted in module __builtin__:


sorted(...)

? ? sorted(iterable, cmp=None, key=None, reverse=False) --> new sorted list


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

cmp 是函數名,相當于每次調用匿名函數 ??lambda s1,s2:cmp(s1.upper(),s2.upper()) ?就會調用自身。

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

舉報

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

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

進入課程

此處為什么需要cmp=lambda這樣寫?

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

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

幫助反饋 APP下載

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

公眾號

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