Как ввести список пар чисел в скобках и добавить их в два массива координат?

Нужно ввести пары чисел и добавить их в два массива координат X и Y. Ввод, например:

(0, 5), (1, 1), (2, 3), (3, 7), (4, 5), (5, 2), (6, 0), (7, 6)

Пока получается только убрать знаки:

string = input()
string = string.replace('(', '').replace(')', '').replace(",", '')
print(string)

Но как добавить их попарно в массив координат?

Знаю как делать вот такой ввод в столбик:

1 1
2 2
4 7
6 6
2 4
3 3
4 4
7 3

Код:

n = 8
x = []
y = []
for i in range(n):
    new_x, new_y = [int(s) for s in input().split()]
    x.append(new_x)
    y.append(new_y)

Как сделать такое же для строки?

(0, 5), (1, 1), (2, 3), (3, 7), (4, 5), (5, 2), (6, 0), (7, 6)

Ответы (4 шт):

Автор решения: MaxU

Можно привести строку к виду "[[0, 5], [1,1], ...]" и после этого спарсить эту строку при помощи json.loads():

import json

s = "(0, 5), (1, 1), (2, 3), (3, 7), (4, 5), (5, 2), (6, 0), (7, 6)"

points = json.loads(f"""[{s.replace("(", "[").replace(")", "]")}]""")

print(points)
# [[0, 5], [1, 1], [2, 3], [3, 7], [4, 5], [5, 2], [6, 0], [7, 6]]

чтобы разнести координаты по отдельным кортежам:

x, y = zip(*points)

print(x)
# (0, 1, 2, 3, 4, 5, 6, 7)

print(y)
# (5, 1, 3, 7, 5, 2, 0, 6)
→ Ссылка
Автор решения: GrAnd

Можно распарсить регулярным выражением.

import re
s = "(0, 5), (1, 1), (2, 3), (3, 7), (4, 5), (5, 2), (6, 0), (7, 6)"
x,y = list(map(list, zip(*[list(map(int, pair)) for pair in re.findall(r"\((\d+)\s*,\s*(\d+)\)", s)])))
print(x)
print(y)
[0, 1, 2, 3, 4, 5, 6, 7]
[5, 1, 3, 7, 5, 2, 0, 6]

Ну или оно же, но в более понятном виде:

x,y = [],[]
for pair in re.findall(r"\((\d+)\s*,\s*(\d+)\)", s):
    x.append(int(pair[0]))
    y.append(int(pair[1]))
→ Ссылка
Автор решения: Qwertiy

https://ideone.com/mcQu34

import re

t = [int(x) for x in re.findall(r"\d+", input())]

a = t[::2]
b = t[1::2]

print(a)
print(b)
→ Ссылка
Автор решения: SergFSM

превратить заданную строку в список вы можете так:

pairs = eval(f'[{input()}]')

функция eval() вычисляет выражение переданное ей в виде строки, в данном случае получаем список.

а дальше вы уже знаете.

x, y = zip(*pairs)
→ Ссылка