Función de mapa y expresión Lambda en Python para reemplazar caracteres

Dada una string S, c1 y c2. Reemplace el carácter c1 con c2 y c2 con c1. Ejemplos:

Input : str = 'grrksfoegrrks'
        c1 = e, c2 = r 
Output : geeksforgeeks 

Input : str = 'ratul'
        c1 = t, c2 = h 
Output : rahul

Tenemos una solución existente para este problema en C++. Consulte Reemplazar un carácter c1 con c2 y c2 con c1 en una string S . Podemos resolver este problema rápidamente en Python usando una expresión Lambda y la función map() . Crearemos una expresión lambda donde el carácter c1 en la string será reemplazado por c2 y c2 será reemplazado por c1. Todos los demás personajes seguirán siendo los mismos. Luego, mapearemos esta expresión en cada carácter de la string y devolveremos una string actualizada. 

Python3

# 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)

Producción:

geeksforgeeks

Publicación traducida automáticamente

Artículo escrito por Shashank Mishra y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *