这个问题已经在这里有一个答案:
- 嵌套的参数不编译 1个回答
我两台PC上运行时的PyDev V2.6插件的Eclipse SDK 3.6版,使用Linux和Windows。
我想传递一个元组作为参数,像(只是例子):
foo = lambda (x,y): (y,x)
print (foo((1,2)))
这可以在Linux,并给出了结果:
(2,1)
在Windows中,它上升了一个错误:
foo = lambda (x,y): (y,x)
^
SyntaxError: invalid syntax
如何解决这个问题呢? 提前致谢...
解
由于interjay和他的参考PEP 3113我发现一个元组参数从3.0版本的Python弃用。
因此,代码不工作,看起来
accepts = filter(lambda q1, q2: (q1, q2) in states, [(q1, q2) for q1 in D1.accepts for q2 in D2.accepts])
现在工作在两个2.7版本和3.0版本的Python和看起来
accepts = filter(lambda q: (q1, q2) in states, [(q1, q2) for q1 in D1.accepts for q2 in D2.accepts])
其中接受是tupes列表反正。