列表理解與lambda+過濾器我碰巧發(fā)現(xiàn)自己有一個基本的過濾需求:我有一個列表,我必須通過條目的一個屬性來過濾它。我的代碼看起來如下:my_list = [x for x in my_list if x.attribute == value]但后來我想,這樣寫不是更好嗎?my_list = filter(lambda x: x.attribute == value, my_list)它更具可讀性,如果性能需要,可以取出lambda以獲得一些信息。問題是:使用第二種方式是否有任何警告?表現(xiàn)有什么不同嗎?我是否完全忽略了PythonicWay?,并且應(yīng)該以另一種方式來實現(xiàn)它(例如使用itemgetter而不是lambda)?
3 回答

阿波羅的戰(zhàn)車
TA貢獻(xiàn)1862條經(jīng)驗 獲得超6個贊
filter
+lambda
list
filter
.
def
lambda
value
value
def filterbyvalue(seq, value): for el in seq: if el.attribute==value: yield el
添加回答
舉報
0/150
提交
取消