在python中将一个字符串(一堆坐标)解析成一个浮点列表的干净方法?

2024-09-29 19:22:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我写的代码看起来越来越难看,要把这个字符串:

"69.766357,21.026979 70.303459,14.286892 71.782379,15.119740 71.216835,22.351538"

并将其解析为如下列表:

pos = [[69.766357,21.026979],[70.303459,14.286892],[71.782379,15.119740],[71.216835,22.351538],[69.766357,21.026979]]

最新代码:

#shave off the first point because we need to add it back in to close poly
firstVal = elem.text.split()
firstVal = firstVal[0].split(',')


for i in elem.text.split():
    smallList = []
    for j in i.split(','):
        smallList.append(float(j))                      
    finalVals.append(smallList)

smallList=[]
smallList.append(float(firstVal[0]))
smallList.append(float(firstVal[1]))
finalVals.append(smallList)

print finalVals

这是我能想到的最好的了。你知道吗


Tags: to字符串代码textinpos列表for
2条回答

有一个干净的pythonic方法,你正在寻找什么,称为列表理解解释here 你需要对你需要的东西做两个列表理解,如下所示:

pos_string = "69.766357,21.026979 70.303459,14.286892 71.782379,15.119740 71.216835,22.351538"
pos = []
pos = [[float(lat_long) for lat_long in position.split(',')] for position in pos_string.split(' ')]
test = "69.766357,21.026979 70.303459,14.286892 71.782379,15.119740 71.216835,22.351538"

print([[float(j) for j in i.split(',')] for i in test.split()])

相关问题 更多 >

    热门问题