首页 > 解决方案 > Python lambda 函数改变它们的值

问题描述

我有这个代码

i = 10
f1 = lambda x1: x1 * i 
i = 20

print(f1(1))

这打印我 20 而不是 10,我需要存储多个 lambdas 函数而不做任何更改,但在变量上保持相同的名称,因为我将 lambdas 函数存储在这样的字典中

for j in range(10):
   my_key = j
   my_value = j
   my_dict[my_key] = lambda a: int(a) * int(my_value)

当我使用任何这个 lambdas 函数时,它们都存储 my_value 的最后一个值,即 9,但是我需要 lambda 函数在更改变量的值时不要更改

我能做些什么?我想不通

标签: pythondictionarylambdaiteration

解决方案


推荐阅读