Python | Convertir string en lista de tuplas

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))
Producción :

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))
Producción :

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

Deja una respuesta

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