python - 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 函数在更改变量的值时不要更改
我能做些什么?我想不通
解决方案
推荐阅读
- c# - C# - 关于while循环的程序
- ssl - Kubernetes Ingress-controller ssl 无终止直通
- spring-data-jpa - 如何在 Spring Data 项目的控制台中运行 jpql 查询?
- python-3.x - 如何使用 getattr 进行多线程,每个属性一个线程?
- arrays - 在页面上显示整个 json 对象
- javascript - Javascript 在不同的小提琴和 chrome 本身上的不同性能
- react-native - ResizeMode='contain' 的 ImageBackground 在 React Native 中的位置
- date - 如何仅提取当天的 API 详细信息?
- javascript - 如何在图表 js 中绘制一条线到最高数据点?
- scala - Spark 读取 Avro 文件