Python - 将2D坐标对列表转换为2个X和Y分量列表

Nic*_*440 2 python string list coordinates python-3.x

我有一个包含几对2D坐标点的字符串,如下所示:

input = '(1, 2), (3, 5.5), (7, -2), (16, 0), (5, 3)'
Run Code Online (Sandbox Code Playgroud)

我想取这个字符串并最后得到两个名为X和Y的列表,它们分别包含字符串中各点的X和Y坐标(按原始顺序排列):

输出:

X = ['1', '3', '7', '16', '5']

Y = ['2', '5.5', '-2', '0', '3']
Run Code Online (Sandbox Code Playgroud)

我怎么能用Python 3做到这一点?

use*_*203 6

使用zipast.literal_eval

s = '(1, 2), (3, 5.5), (7, -2), (16, 0), (5, 3)'
x, y = zip(*ast.literal_eval(s))

x
(1, 3, 7, 16, 5)

y
(2, 5.5, -2, 0, 3)
Run Code Online (Sandbox Code Playgroud)

如果您将输出设置为列表,则可以使用:

x, y = map(list, zip(*ast.literal_eval(s)))
Run Code Online (Sandbox Code Playgroud)