Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从下到上减少lambda印花_Python_Lambda - Fatal编程技术网

Python 从下到上减少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(

我想尝试实现将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(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