在Python中映射函数和 Lambda 表达式以替换字符
给定一个字符串S、c1 和 c2。将字符c1 替换为 c2 并将 c2 替换为 c1。
例子:
Input : str = 'grrksfoegrrks'
c1 = e, c2 = r
Output : geeksforgeeks
Input : str = 'ratul'
c1 = t, c2 = h
Output : rahul
我们在 C++ 中有针对此问题的现有解决方案,请参阅在字符串S 链接中用 c2 替换字符c1 和用 c1 替换字符 c1。我们将使用 Lambda 表达式和 map()函数在Python中快速解决这个问题。我们将创建一个lambda 表达式,其中字符串中的字符c1 将被 c2 替换,c2 将被 c1 替换,其他将保持不变,然后我们将这个表达式映射到字符串的每个字符,并得到更新的字符串。
# Function to replace a character c1 with c2
# and c2 with c1 in a string S
def replaceChars(input,c1,c2):
# create lambda to replace c1 with c2, c2
# with c1 and other will remain same
# expression will be like "lambda x:
# x if (x!=c1 and x!=c2) else c1 if (x==c2) else c2"
# and map it onto each character of string
newChars = map(lambda x: x if (x!=c1 and x!=c2) else \
c1 if (x==c2) else c2,input)
# now join each character without space
# to print resultant string
print (''.join(newChars))
# Driver program
if __name__ == "__main__":
input = 'grrksfoegrrks'
c1 = 'e'
c2 = 'r'
replaceChars(input,c1,c2)
输出:
geeksforgeeks