A veces, mientras trabajamos con strings de Python, podemos tener un problema en el que recibimos una tupla, una lista en el formato de string separada por comas y tenemos que convertir a la lista de tupla. Analicemos ciertas formas en que se puede realizar esta tarea.
Método n.º 1: Usar bucle +split() + replace()
Este es un método de fuerza bruta para realizar esta tarea. En esto, realizamos la tarea de extraer y rehacer las tuplas para listarlas en un bucle usando las funcionalidades split() y replace().
# Python3 code to demonstrate working of # Convert String to tuple list # using loop + replace() + split() # initializing string test_str = "(1, 3, 4), (5, 6, 4), (1, 3, 6)" # printing original string print("The original string is : " + test_str) # Convert String to tuple list # using loop + replace() + split() res = [] temp = [] for token in test_str.split(", "): num = int(token.replace("(", "").replace(")", "")) temp.append(num) if ")" in token: res.append(tuple(temp)) temp = [] # printing result print("List after conversion from string : " + str(res))
The original string is : (1, 3, 4), (5, 6, 4), (1, 3, 6) List after conversion from string : [(1, 3, 4), (5, 6, 4), (1, 3, 6)]
Método n.º 2: usareval()
esta función incorporada también se puede usar para realizar esta tarea. Esta función evalúa internamente la string y devuelve la lista convertida de tuplas según se desee.
# Python3 code to demonstrate working of # Convert String to tuple list # using eval() # initializing string test_str = "(1, 3, 4), (5, 6, 4), (1, 3, 6)" # printing original string print("The original string is : " + test_str) # Convert String to tuple list # using eval() res = list(eval(test_str)) # printing result print("List after conversion from string : " + str(res))
The original string is : (1, 3, 4), (5, 6, 4), (1, 3, 6) List after conversion from string : [(1, 3, 4), (5, 6, 4), (1, 3, 6)]
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