Python 从下到上减少lambda印花
我想尝试实现将lambda减少为从文件打印Python 从下到上减少lambda印花,python,lambda,Python,Lambda,我想尝试实现将lambda减少为从文件打印 reduce((lambda x,y: y + x), iterLines, "") 文本文件如下所示 Starting a new phase Phase 1 completed Preparing phase 2 Phase 2 loading Interruption detected Incomplete! 我的代码是这样的(它读取一个文件,然后找到一个字符串,如果找到了该字符串,它将打印该行以及上面的2) print(
reduce((lambda x,y: y + x), iterLines, "")
文本文件如下所示
Starting a new phase
Phase 1 completed
Preparing phase 2
Phase 2 loading
Interruption detected
Incomplete!
我的代码是这样的(它读取一个文件,然后找到一个字符串,如果找到了该字符串,它将打印该行以及上面的2)
print(iterLines)的输出如下:
Phase 2 loading
Interruption detected
Incomplete!
但是,当我使用reduce lambda时,输出正好相反
Incomplete!
Interruption detected
Phase 2 loading
是否有任何关于交换行的原因?您将先前的结果附加到当前项,但希望相反:
reduce((λx,y:y+x),iterline,””)
相反,将y
附加到x
:
reduce((lambda x,y:x+y),iterline,“””
f{y}到底应该做什么?@ShadowRanger y是迭代中的当前项。请看:@pygeek:我知道reduce
是如何工作的。但是f{y}
对任何东西都不是有效的Python语法。普通的y+x
是有意义的(但会产生他们不想要的反向输出),但是f{y}+x
是一个SyntaxError
。无论是普通的y
还是f'{y}'
都是有意义的(尽管给定的项目已经是字符串,f'{y}'
将毫无意义)。@ShadowRanger我在过去2-3个月一直在尝试学习python。之所以有一个f{y}是因为它是一个更大代码的一部分,在这个代码中,我用html将我的输出制作成一个友好的网站。最后,我试图为自己制作一个方便的python参考页面。在我的python代码中,我有一个html\u content=f”“”
,在那里我输入了“{reduce((lambda x,y:f“{x}”+y),iterLines,”),但是是的,我在问这个问题时忘了删除“f{}”部分。
Incomplete!
Interruption detected
Phase 2 loading