2014-01-29 35 views
0

我试图做python list comprehension,但我得到一个语法错误。我不熟悉python list comprehension,所以我似乎无法理解为什么这是错误的。python列表理解函数的语法错误

>>> s = set() 
>>> def in_set(s, val): 
     if val in s: 
      return True 
     else: 
      s.add(val) 
      return False 

>>> [x for x in v0.outV() if x.eid not in_set(s, x.eid)] 
    File "<input>", line 1 
    [x for x in v0.outV() if x.eid not in_set(s, x.eid)] 
              ^
SyntaxError: invalid syntax 

>>> print "This Works" 
This Works 
>>> in_set(s, v0.eid) 
False 

v0.outV()generatorxobject,并x.eidstring

+5

我想你的意思是'如果不是in_set(s,x.eid)'。 – BrenBarn

回答

3

看你的代码结构,我相信你想这样的:

[x for x in v0.outV() if not in_set(s, x.eid)] 

这里是list comprehensions参考。

+0

我是个白痴。谢谢 – Derek