Python 如何将字符串格式化为两列列表

Python 如何将字符串格式化为两列列表,python,string,list,Python,String,List,我有一个python字符串,格式如下: "x1 y1\n x2 y2\n x3 y3\n ..." 我想把它转换成一个列表点=[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] 这样行吗 >>> ra

我有一个python字符串,格式如下:

"x1 y1\n x2 y2\n x3 y3\n ..."
我想把它转换成一个列表
点=[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]
这样行吗

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

在新行上拆分,然后为每行假设一个空格拆分值,从中创建一个点列表。

显然,有很多方法可以做到这一点

我会使用列表理解,因为它很简洁

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

您是否能够提供您的代码尝试,以便我们有一个开始的位置?现在,我的代码是从bash命令读入输出。命令为:rbox 100 D2,这将生成100个随机点的坐标。现在我被困在格式化这些输出。我使用python子进程来获取输出。这可能是一个开始学习字符串操作(如解析)的好地方:哦,看来你在这方面击败了我。。。3分钟+1我完全被stackoverflow提供的答案的质量和速度所淹没。。。谢谢大家啊,是的,我从来没有。但我有时在回答问题时没有创造性。我试着让它尽可能合乎逻辑和简洁。
>>> 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']]
>>>
>>> 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']]