小编kar*_*na7的帖子

Python lambda作为常量仿函数

我有代码与labdas,我已经检查每次创建函数对象它是不同的(不引用同一个对象),但它不能像我期望的那样工作.有没有办法如何或我应该使用仿函数来做它,即使我有插入lambda体内的恒定数据?

pairs = [('abc', 'xyz'), ('123', '987'), ('abc', '987')]

pairLambs = []

for p in pairs:
    pairLambs.append(lambda: print(p))

pairLambs[0]()
pairLambs[1]()
pairLambs[2]()
Run Code Online (Sandbox Code Playgroud)

输出:

('abc', '987')
('abc', '987')
('abc', '987')
Run Code Online (Sandbox Code Playgroud)

但是我需要:

('abc', 'xyz')
('123', '987')
('abc', '987')
Run Code Online (Sandbox Code Playgroud)

python lambda

5
推荐指数
1
解决办法
560
查看次数

标签 统计

lambda ×1

python ×1