У меня есть строка Python в следующем формате:
"x1 y1\n x2 y2\n x3 y3\n ..."
Я хотел бы преобразовать это в список points = [p1, p2, p3,...], где p1, p2 и p3 равны [x1,y1], [x2,y2] и [x3,y3] и т. Д.
points = [p1, p2, p3,...]
p1
p2
p3
[x1,y1]
[x2,y2]
[x3,y3]
Спасибо
Думаю, вы можете использовать следующее:
inputText = "x1 y1\n x2 y2\n x3 y3\n" print [line.split() for line in inputText.split('\n') if line]
очевидно, есть много способов сделать это.
Я бы использовал списочное понимание для его краткости.
>>> str = 'x1 y1\n x2 y2\n x3 y3\n' >>> [p.split() for p in str.split('\n') if p != ''] [['x1', 'y1'], ['x2', 'y2'], ['x3', 'y3']]
Будет ли это делать?
>>> raw = "x1 y1\nx2 y2\nx3 y3" >>> lines = raw.split("\n") >>> points = [] >>> for l in lines: ... points.append(l.split(' ')) ... >>> points [['x1', 'y1'], ['x2', 'y2'], ['x3', 'y3']] >>>
Разделить на новые строки, затем для каждой строки предположить, что пробел разделяет значения, создать список точек из этого.
a='x1 y1\n x2 y2\n x3 y3\n' points = map (lambda x : x.split (), a.split ('\n'))
points = [] for point in myStr.split('\n'): points.append(point.split())