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

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

可能是低級問題,不過真心小白不懂

L1 = [p1, p2, p3]
L2 = sorted(L1,lambda p1, p2: cmp(p1.name, p2.name))

這里為什么只有p1,?p2就可以正常運行了,不需要p3為什么

正在回答

3 回答

L2 = sorted(L1,lambda p1, p2: cmp(p1.name, p2.name))中的p1和p2并不是指的上面的實例p1和p2

lambda?p1,?p2:?cmp(p1.name,?p2.name)

相當于一個函數,函數中的p1和p2就是函數的參數,拿出來可能會比較好理解

L2?=?sorted(L1,lambda?p1,?p2:?cmp(p1.name,?p2.name))

def?sort_name(p1,?p2):
????if?p1.name?>?p2.name:
????????return?1
????else:
????????return?-1
????????
L2?=?sorted(L1,?sort_name)


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

weixin_慕粉0189013 提問者

哦哦謝謝
2019-08-05 回復 有任何疑惑可以回復我~

lambda 匿名函數中的P1,P2 只是一個形參,不是上面的實例名P1 P2

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

L2里面的p1和p2只是參數,不是指的L1里面的同名元素。。

L2 = sorted(L1,lambda x, y: cmp(x.name, y.name))

這樣寫就不蒙了

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

sudoRam

不行啊,L2 = sorted(L1,lambda x, y: cmp(x.name, y.name))和L2 = sorted(L1,lambda p1,p2: cmp(x.name, y.name))輸出的不一樣。改成了x,y會報錯,輸出順序錯了
2019-11-04 回復 有任何疑惑可以回復我~
#2

lllOrz 回復 sudoRam

后面參數改成p1,p2了可是你后面比較的還是x.name,y.name
2020-02-20 回復 有任何疑惑可以回復我~

舉報

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

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

進入課程

可能是低級問題,不過真心小白不懂

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

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

幫助反饋 APP下載

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

公眾號

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