Python - 将二维坐标对列表转换为X和Y分量的两个列表

3

我有一个字符串,其中包含若干对二维坐标点,格式如下:

input = '(1, 2), (3, 5.5), (7, -2), (16, 0), (5, 3)'

我希望将此字符串转化为两个列表,分别命名为X和Y,它们按照原始顺序包含字符串中点的X和Y坐标:

输出:

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

Y = ['2', '5.5', '-2', '0', '3']

我该如何使用Python 3来完成这个任务?

不要将变量命名为 input。这会覆盖内置函数。 - user3483203
1
在我的程序中,我没有将其命名为“input”,我只是在这里这样做是为了展示程序将接受的输入类型。 - Nick_2440
1个回答

7

使用 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)

如果您需要输出为列表,您可以使用以下代码:
x, y = map(list, zip(*ast.literal_eval(s)))

@OP,请注意必要的 import ast - modesitt
很高兴能帮助你,愉快的编程! - user3483203

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接