我试图通过使用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
答案 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
(顺便说一下,奇怪的变量名称。为什么z
和y
,以及为什么它们倒退?)