下面是替换字符的Python代码。有人能解释lambda的部分吗?最初,X取“p”,检查它是a1还是a2。交换发生在哪里?在
def replaceUsingMapAndLambda(sent, a1, a2):
# We create a lambda that only works if we input a1 or a2 and swaps them.
newSent = map(lambda x: x if(x != a1 and x != a2) else a1 if x == a2 else a2, sent)
print(newSent)
return ''.join(newSent)
print(replaceUsingMapAndLambda("puporials toinp", "p", "t"))
输出:
^{pr2}$谢谢, 里希卡
它接受字符串(或列表),在本例中是:
"puporials toinp"
然后它遍历字符串/列表中的每个字符/项,并检查以下内容:(我将为您断开lambda代码)
1)如果char/item不等于a1也不等于a2,则将其映射到所检查的同一个字符。在
这是这段代码:
x if(x != a1 and x != a2)
其他
2)如果字符等于a2,则映射a1的值;如果不是,则映射a2。在
这是这段代码:
else a1 if x == a2 else a2
然后newSent是一个map对象,它包含字符(上面解释了逻辑),并使用
''.join(newSent)
命令将其转换回字符串。在为了避免混淆,让我们首先提取lambda函数并查看它的作用。lambda函数定义为
但是,lambda函数仍然可以避免定义为lambda函数的任何定义。此特定lambda函数使用ternary operator。这可以扩展为常规if-else语句。这将导致一个类似这样的正则函数
^{pr2}$这与:
Lambda是创建匿名函数的关键字,map将此匿名函数应用于列表的每个元素并返回结果。在
相关问题 更多 >
编程相关推荐