Python: caracteres reservados de escape en la lista de strings

Dada la Lista de strings, caracteres de escape reservados en cada string.

Entrada : test_list = [“Gf-g”, “be)s(t”] 
Salida : [‘Gf\\-g’, ‘be\\)s\\(t’] 
Explicación : Todos los elementos de caracteres reservados escaparon, agregando el doble \\.

Entrada : test_list = [“Gf-g”] 
Salida : [‘Gf\\-g’] 
Explicación : Todos los elementos de caracteres reservados escaparon, agregando el doble \\. 
 

Método #1: Usar join() + comprensión de lista

En esto, construimos el diccionario para mapear cada carácter reservado a su versión escapada, y luego realizamos la tarea de reemplazo en la lista de comprensión y unimos el resultado para formar strings.

Python3

# Python3 code to demonstrate working of
# Escape reserved characters in Strings List
# Using list comprehension + join()
 
# initializing list
test_list = ["Gf-g", "is*", "be)s(t"]
 
# printing string
print("The original list : " + str(test_list))
 
# the reserved string
reserved_str = """? & | ! { } [ ] ( ) ^ ~ * : \ " ' + -"""
 
# the mapped escaped values
esc_dict = { chr : f"\\{chr}" for chr in reserved_str}
 
# performing transformation using join and list comprehension
res = [ ''.join(esc_dict.get(chr, chr) for chr in sub) for sub in test_list]
 
# printing results
print("The resultant escaped String : " + str(res))
Producción

The original list : ['Gf-g', 'is*', 'be)s(t']
The resultant escaped String : ['Gf\\-g', 'is\\*', 'be\\)s\\(t']

Método #2: Usando maketrans() + translate() + zip()

En esto, el escape se realiza emparejando usando zip() y maketrans() en lugar de diccionario para el mapeo. La traducción se realiza utilizando el resultado de maketrans().

Python3

# Python3 code to demonstrate working of
# Escape reserved characters in Strings List
# Using maketrans() + translate() + zip()
 
# initializing list
test_list = ["Gf-g", "is*", "be)s(t"]
 
# printing string
print("The original list : " + str(test_list))
 
# reserved_chars
reserved_chars = '''?&|!{}[]()^~*:\\"'+-'''
 
# the escaping logic
mapper = ['\\' + ele for ele in reserved_chars]
result_mapping = str.maketrans(dict(zip(reserved_chars, mapper)))
 
# reforming result
res = [sub.translate(result_mapping) for sub in test_list]
 
# printing results
print("The resultant escaped String : " + str(res))
Producción

The original list : ['Gf-g', 'is*', 'be)s(t']
The resultant escaped String : ['Gf\\-g', 'is\\*', 'be\\)s\\(t']

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

Deja una respuesta

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