Python 通过列表理解读取文件中的所有行

Python 通过列表理解读取文件中的所有行,python,file-io,list-comprehension,Python,File Io,List Comprehension,我有一个简单的问题,很抱歉如果我在stackoverflow发布。我是python新手,我不记得如何在列表压缩中读取x,y,z 我的文件是一个x、y、z文件,其中每条线都是一个点: x1,y1,z1 x2,y2,z2 x3,y3,z3 ........ inFile = "Myfile.las" with lasfile.File(inFile, None, 'r') as f: # missing part points =[] 我希望保存的对象只有x和y 提前感谢并

我有一个简单的问题,很抱歉如果我在stackoverflow发布。我是python新手,我不记得如何在列表压缩中读取x,y,z

我的文件是一个x、y、z文件,其中每条线都是一个点:

x1,y1,z1
x2,y2,z2
x3,y3,z3
........

inFile = "Myfile.las"

with lasfile.File(inFile, None, 'r') as f:
     # missing part
     points =[]
我希望保存的对象只有x和y


提前感谢并为这个简单的问题感到抱歉

您想要一个x和y坐标的列表,这很简单:

with lasfile.File(inFile, None, 'r') as f:
     # missing part
     points = [line.split(',')[:2] for line in lasfile]
如果这些坐标是整数,您可以通过快速调用map将它们从str转换为python int:

在python 3中,map是一个生成器,最好使用嵌套列表:

points = [[int(i) for i in line.split(',')[:2]] for line in lasfile]
这将产生一个列表:

[[x1, y1], [x2, y2], ...]

你想要一个x和y坐标的列表,这很简单:

with lasfile.File(inFile, None, 'r') as f:
     # missing part
     points = [line.split(',')[:2] for line in lasfile]
如果这些坐标是整数,您可以通过快速调用map将它们从str转换为python int:

在python 3中,map是一个生成器,最好使用嵌套列表:

points = [[int(i) for i in line.split(',')[:2]] for line in lasfile]
这将产生一个列表:

[[x1, y1], [x2, y2], ...]

或者python3.x中的一个iterables列表:-/-有时我希望它们保留一个类似于map的函数,返回一个列表。lmap什么的…@mgilson:的确;在这种情况下,嵌套列表理解可能更具可读性。谢谢,我的想法是阅读x和y,并找到Xmax、Xmin、Ymax和Ymin。我写了一段代码,但实际上并不优雅。使用您的代码,我有一个问题:回溯最近的调用last:文件,第1行,在AttributeError:exit@Gianni:综上所述,我发现根本不支持将文件对象用作上下文管理器。在python3.x:-/-中,\ uuu exit\或iterables列表上总是会出现属性错误,有时我希望他们保留一个类似于map的函数,返回一个列表。lmap什么的…@mgilson:的确;在这种情况下,嵌套列表理解可能更具可读性。谢谢,我的想法是阅读x和y,并找到Xmax、Xmin、Ymax和Ymin。我写了一段代码,但实际上并不优雅。使用您的代码,我有一个问题:回溯最近的调用last:文件,第1行,在AttributeError:exit@Gianni:综上所述,我发现根本不支持将文件对象用作上下文管理器。您应该总是在退出时得到属性错误。