Как отформатировать строку в список из двух столбцов - PullRequest
2 голосов
/ 30 июня 2011

У меня есть строка Python в следующем формате:

"x1 y1\n x2 y2\n x3 y3\n ..."

Я хотел бы преобразовать это в список points = [p1, p2, p3,...], где p1, p2 и p3 равны [x1,y1], [x2,y2] и [x3,y3] и т. Д.

Спасибо

Ответы [ 5 ]

6 голосов
/ 30 июня 2011

Думаю, вы можете использовать следующее:

inputText = "x1 y1\n x2 y2\n x3 y3\n"
print [line.split() for line in inputText.split('\n') if line]
2 голосов
/ 30 июня 2011

очевидно, есть много способов сделать это.

Я бы использовал списочное понимание для его краткости.

>>> 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']]
0 голосов
/ 30 июня 2011

Будет ли это делать?

>>> 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']]
>>>

Разделить на новые строки, затем для каждой строки предположить, что пробел разделяет значения, создать список точек из этого.

0 голосов
/ 30 июня 2011
a='x1 y1\n x2 y2\n x3 y3\n'

points = map (lambda x : x.split (), a.split ('\n'))
0 голосов
/ 30 июня 2011
points = []
for point in myStr.split('\n'):
    points.append(point.split())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...