我正在创建一个单行来将 int 字符串映射到函数测试值是否匹配。理想情况下,结果字典的d
行为类似于d['0'](0) is True
and d['0'](1) is False
。但相反,我得到以下输出:
>>> d = { str(i): lambda v: v == i for i in range(3) }
>>> d['0'](0)
False
>>> d['0'](2)
True
我猜是懒惰评估的原因。我想我可以正确地用循环构建字典,for
但我想要一个单行表达式。
谁能解释为什么这种方法会失败以及我是如何做对的?