write a function which takes a string in the format given returns a list in given below format
input: "[(694, 104), (153, 236), (201, 106), (601, 427)]"
The easiest way to achieve that would be using eval
(you don't need to import anything):
eval(string1)
# -> [(694, 104), (153, 236), (201, 106), (601, 427)]
But, if you really want to use just str
and list
methods:
def convertor(string):
result = string.strip('[)]').split('), ')
result = [s+')' for s in result]
return result
string1 = "[(694, 104), (153, 236), (201, 106), (601, 427)]"
print(convertor(string1))
# -> ['(694, 104)', '(153, 236)', '(201, 106)', '(601, 427)']
To reproduce the exact output:
for item in convertor(string1):
print(item)
(694, 104)
(153, 236)
(201, 106)
(601, 427)
How about using ast.literal_eval
:
import ast
def convertor(string):
return ast.literal_eval(string)
string1 = "[(694, 104), (153, 236), (201, 106), (601, 427)]"
print(convertor(string1))
You can use ast.literal_eval
import ast
arr = ast.literal_eval("[(694, 104), (153, 236), (201, 106), (601, 427)]")
for ele in arr:
print(ele)
Output
(694, 104)
(153, 236)
(201, 106)
(601, 427)