Dada una asignación de caracteres que se reemplazarán con los valores correspondientes, realice todos los reemplazos a la vez, en una sola línea.
Entrada : test_str = ‘geeksforgeeks is best’, map_dict = {‘e’:’1′, ‘b’:’6′}
Salida : g11ksforg11ks is 61st
Explicación : todas las e se reemplazan por 1 y b por 6.
Entrada : test_str = ‘geeksforgeeks’, map_dict = {‘e’:’1′, ‘b’:’6′}
Salida : g11ksforg11ks
Explicación : todas las e se reemplazan por 1 y b por 6.
Método #1: Usando join() + expresión generadora
En esto, realizamos la tarea de hacer que los caracteres estén presentes en el diccionario y asignarlos a sus valores mediante el acceso al diccionario, todos los demás caracteres se agregan sin cambios, el resultado se vuelve a convertir al diccionario usando join().
Python3
# Python3 code to demonstrate working of # Replace Different characters in String at Once # using join() + generator expression # initializing string test_str = 'geeksforgeeks is best' # printing original String print("The original string is : " + str(test_str)) # initializing mapping dictionary map_dict = {'e':'1', 'b':'6', 'i':'4'} # generator expression to construct vals # join to get string res = ''.join(idx if idx not in map_dict else map_dict[idx] for idx in test_str) # printing result print("The converted string : " + str(res))
The original string is : geeksforgeeks is best The converted string : g11ksforg11ks 4s 61st
Método #2: Usar expresiones regulares + lambda
Esta es una forma compleja de abordar el problema. En esto, construimos expresiones regulares apropiadas usando funciones lambda y realizamos la tarea requerida de reemplazo.
Python3
# Python3 code to demonstrate working of # Replace Different characters in String at Once # using regex + lambda import re # initializing string test_str = 'geeksforgeeks is best' # printing original String print("The original string is : " + str(test_str)) # initializing mapping dictionary map_dict = {'e':'1', 'b':'6', 'i':'4'} # using lambda and regex functions to achieve task res = re.compile("|".join(map_dict.keys())).sub(lambda ele: map_dict[re.escape(ele.group(0))], test_str) # printing result print("The converted string : " + str(res))
The original string is : geeksforgeeks is best The converted string : g11ksforg11ks 4s 61st
Publicación traducida automáticamente
Artículo escrito por manjeet_04 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA