小编rug*_*ita的帖子

通过for循环定义lambdas的python字典

我需要通过for循环定义python lambda函数的字典。每个lambda函数都需要相对字典键的值才能起作用,但我希望避免将此类键作为参数传递。这是我的问题的虚拟版本。

给定

a = {'bar': 0, 'foo': 1}  # a reference dictionary 

dic1 = {'bar': lambda x: x['bar'], 'foo': lambda x: x['foo']}
dic2 = {key: lambda x: x[key] for key in a}
Run Code Online (Sandbox Code Playgroud)

我希望dic1和dic2做同样的事情,但是只有dic1会按照我的意愿进行操作。特别是

print(dic1['bar'](a), dic1['foo'](a))
print(dic2['bar'](a), dic2['foo'](a))
Run Code Online (Sandbox Code Playgroud)

0 1
1 1
Run Code Online (Sandbox Code Playgroud)

代替

0 1
0 1
Run Code Online (Sandbox Code Playgroud)

python python-3.x

9
推荐指数
1
解决办法
180
查看次数

标签 统计

python ×1

python-3.x ×1