python 从数组列表中获取单独的坐标

egmofgnx  于 2023-01-29  发布在  Python
关注(0)|答案(2)|浏览(167)

s =['(2,-1)','(2,2)']
这是2个坐标,我如何将它们转换为这种形式,以便变量x1,x2,y1,y2包含它们的值(不使用外部库)
x1,y1 = 2,-1
x2、y2 = 2,2
我是这样想的

for i in range(len(s)-1):
    p1 = s[i]
    p2  = s[i+1]
    print p1 ,p2
bzzcjhmw

bzzcjhmw1#

可以使用ast.literal_eval从字符串创建元组。

from ast import literal_eval
# ...
x1, y1 = literal_eval(s[i])
x2, y2  = literal_eval(s[i+1])
print(x1, y1, x2, y2)

或者,删除第一个和最后一个字符,在逗号处拆分,并将每个部分转换为int。

def parts(s):
    return map(int, s[1:-1].split(','))
# ...
x1, y1 = parts(s[i])
x2, y2  = parts(s[i+1])
gkn4icbw

gkn4icbw2#

可以使用解析来解析字符串列表

# You can replace int by float if needed
x1, y1, x2, y2 = [int(j) for i in s for j in i[1:-1].split(',')]
print(x1, y1)
print(x2, y2)

# Output
2 -1
2 2

相关问题