A veces, mientras trabajamos con datos, podemos tener problemas en los que necesitamos convertir la lista de datos en formato de string a una lista de tuplas. Esto puede ocurrir en dominios en los que tenemos entradas de tipo cruzado. Analicemos ciertas formas en que se puede realizar esta tarea.
Método n.º 1: Uso de bucle +eval()
La combinación de los métodos anteriores se puede utilizar para resolver esta tarea. En esto, rehacemos la string después de procesar la entrada a la función de evaluación para convertirla en listas de tuplas.
# Python3 code to demonstrate working of # Convert String Records to Tuples Lists # Using loop + eval() # initializing string test_str = '[(gfg, ), (is, ), (best, )]' # printing original string print("The original string is : " + test_str) # Convert String Records to Tuples Lists # Using loop + eval() res = '' temp = True for chr in test_str: if chr == '(' and temp: res += '("' temp = False continue if chr == ', ' and not temp: res += '"' temp = True res += chr res = eval(res) # printing result print("The list of Tuples is : " + str(res))
The original string is : [(gfg, ), (is, ), (best, )] The list of Tuples is : [('gfg', ), ('is', ), ('best', )]
Método #2: Uso de expresiones regulares + comprensión de lista
La combinación de las funcionalidades anteriores se utiliza para realizar esta tarea. En esto, empleamos la función regex para realizar la tarea de resolver las ayudas de comprensión de strings y listas en la reconstrucción de la lista de registros.
# Python3 code to demonstrate working of # Convert String Records to Tuples Lists # Using regex + list comprehension import re # initializing string test_str = '[(gfg, ), (is, ), (best, )]' # printing original string print("The original string is : " + test_str) # Convert String Records to Tuples Lists # Using regex + list comprehension regex = re.compile(r'\((.*?)\)') temp = regex.findall(test_str) res = [tuple(sub.split(', ')) for sub in temp] # printing result print("The list of Tuples is : " + str(res))
The original string is : [(gfg, ), (is, ), (best, )] The list of Tuples is : [('gfg', ''), ('is', ''), ('best', '')]
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