我在Python中有一个列表,其中第一个项目映射了助行器所采用的路线。 ' 0' 0是步行的起点,而且是' 68'代表第一个航点。助行器总是在它开始的地方结束。
因此,起点和终点之间的点可以看作是步行的中间点或航路点。
['Route 0: 0([1.11, 2.11]) -> 68([5.11, -6.11]) -> 0([1.11, 2.11]) Service Time(53) Time(1:54, 24:0)\n',
'item 2\n',
'item 3\n',
'item 4\n']
有没有办法可以抓住列表第一项中的每个坐标,并将它们标记为起点,终点或中间点,将它们打印成CSV?
我尝试指定每个坐标前面都有一个'(['在第1项中但是没有工作。
答案 0 :(得分:0)
如果我正确地阅读了这个问题,那么您正在尝试匹配数字 ([ , 东西的])强>:
import re
data = [
'Route 0: 0([1.11, 2.11]) -> 68([5.11, -6.11]) -> 0([1.11, 2.11]) Service Time(53) Time(1:54, 24:0)\n',
'item 2\n',
'item 3\n',
'item 4\n']
matches = re.findall(r'(\d+)\(\[(.+?),(.+?)\]\)', data[0])
coords = [(int(p), float(x), float(y)) for p, x, y in matches]
print(coords)
# [(0, 1.11, 2.11), (68, 5.11, -6.11), (0, 1.11, 2.11)]
然后你可以遍历该列表并将其放入CSV。