相关疑难解决方法(0)

在Python中使用lambda表达式进行赋值

我有一个对象列表,我想删除所有空的对象,除了一个,使用filterlambda表达式.

例如,如果输入是:

[Object(name=""), Object(name="fake_name"), Object(name="")]
Run Code Online (Sandbox Code Playgroud)

...那么输出应该是:

[Object(name=""), Object(name="fake_name")]
Run Code Online (Sandbox Code Playgroud)

有没有办法为lambda表达式添加赋值?例如:

flag = True 
input = [Object(name=""), Object(name="fake_name"), Object(name="")] 
output = filter(
    (lambda o: [flag or bool(o.name), flag = flag and bool(o.name)][0]),
    input
)
Run Code Online (Sandbox Code Playgroud)

python lambda expression variable-assignment

94
推荐指数
11
解决办法
9万
查看次数

python 中 lambda 的一个奇怪用法

我遇到的部分代码如下,其中workers是类对象的列表:

worker_threads = []
for worker in workers:
    worker_fn = lambda worker=worker: worker.run(sess, coord, FLAGS.t_max)
    t = threading.Thread(target=worker_fn)
    t.start()
    worker_threads.append(t)
Run Code Online (Sandbox Code Playgroud)

通常我期望lambdais的语法lambda x : func(x),但在这里worker=worker用于什么?

python lambda

2
推荐指数
1
解决办法
63
查看次数

标签 统计

lambda ×2

python ×2

expression ×1

variable-assignment ×1