所以我在Kotti里面找到了这段代码:
[child] = filter(lambda ch: ch.name == path[0], self._children)
我想知道:左边的方括号有什么作用?我在 python shell 中做了一些测试,但我不太明白它的用途。
奖励问题:lambda
返回什么?我猜是 (Boolean, self._children)
的元组,但这可能是错误的...
最佳答案
这是列表拆包,一个只有一个元素的列表。等价物是:
child = filter(lambda ch: ch.name == path[0], self._children)[0]
(如果 self._children
的多个元素满足条件,则异常(exception)情况 - 在这种情况下,Kotti 的代码会抛出错误(太多值无法解包),而上面的代码会使用列表中的第一个)。
此外:lambda ch: ch.name == path[0]
返回 True
或 False
。
关于Python:左括号赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11487400/