lambda语句中的条件

时间:2015-06-05 21:10:00

标签: python python-2.7 lambda

我试图通过使用lambda函数在列表中找到重复项:

f = lambda z,y: z=[] if z[0]==y[0] and z[1]==y[1]

我有一个像

这样的清单
[['hey','ho'], ['hey','ho'], ['howdy','no']]

我希望

['hey','ho'], ['howdy','no']]

我收到错误:

>>> f = lambda z,y: z=[] if z[0]==y[0] and z[1]==y[1] else z=z
  File "<stdin>", line 1
SyntaxError: can't assign to lambda

1 个答案:

答案 0 :(得分:2)

lambda需要是一个求值为某个值的表达式。它不应该是对变量的赋值。摆脱z

的作业
f = lambda z,y: [] if z[0]==y[0] and z[1]==y[1] else z

或更简单

f = lambda z,y: [] if z==y else z

(顺便说一下,奇怪的变量名称。为什么zy,以及为什么它们倒退?)