Python | Convert string to list of tuples



Method # 1: Using loop + split () + replace ()
This is a brute force method to accomplish this task. In this we perform the task of extracting and re-converting tuples to a list in a loop using the split () and replace () functions.

# Python3 code to demonstrate how it works
# Convert string to list of tuples
# using loop + replace () + split ()

 
# initialization string

test_str = "(1, 3, 4), (5, 6, 4), (1, 3, 6) "

  
# print the original line

print ( "The original string is:" + test_str)

  
# Convert string to list of tuples
# 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 = []

 
# print result

print ( "List after conversion from string:" + str (res))

Output:

 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) ] 

Method # 2: Using eval()
This built-in function can also be used to accomplish this task. This function internally evaluates the string and returns a transformed list of tuples as desired.

# Python3 code to demonstrate how it works
# Convert string to list of tuples
# using eval ()

  
# initialization string

test_str = "(1, 3, 4), (5, 6, 4), (1, 3, 6)"

 
# print the original line

print ( "The original string is:" + test_str)

  
# Convert string to list of tuples
# using eval ()

res = list ( eval (test_str))

 
# print result

print ( "List after conversion from string:" + str (res))

Output:

 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)]