我对编码通常很陌生,而且在裁剪一些数据时遇到问题。它是一个简单的文本文件,我到目前为止已经设法从文件中取出一大串文本,并将其分割成列表中的单个值(例如index [0] = -78.5)。所述列表中的前两个索引分别是经度和纬度,其后的240是值(我想要分析的数据)。从那里开始,接下来的两个值就是经度和纬度,依此类推 - 也就是说,指数[242]和[243]也分别是经度和纬度。Python - 在切片列表中创建多个列表
我想要做的是遍历这个列表,取出前242个索引(lat,lon,然后是240个单独的值),并将它们放入一个列表中,然后放入一个“主”列表,创建一个嵌套列表。我想这样做,直到我到达列表的末尾,这意味着我想有一个步骤242(我认为?)。最终的结果应该是这个样子:
master_list = [纬度,经度,240个值...],[纬度,经度,240个值...],...]
我需要这样我就可以单独访问每个经度和纬度,同时仍然将它们与它们的值关联起来,因为我将根据坐标裁剪这些数据。
到目前为止,我有这样的:
f = open('file.txt', 'r')
file_contents = f.read()
f.close()
single_obs = file_contents.split(" ")
new_list = []
blank_value = single_obs[0]
def remove_blankspace(my_list):
for i in my_list:
if i != blank_value:
new_list.append(i)
return new_list
remove_blankspace(single_obs)
print new_list[0]
这基本上就是我去除文件的空白空间,使串入列表中的单个元素。 'new_list'有很多元素!
我想这是一个考验,但我的路要走,并认为我创建了一个无限循环,因为我不得不重新启动我的电脑:
indiv_values = []
for value in new_list:
line = new_list[::239]
indiv_values.append(line)
print indiv_values[0]
我曾试图通过行线分割它,因为每个行包含lat,lon和240值。我设法创建了一个包含每行的列表,但不能将每行中的每个值都分成单独的元素。
对不起,如果这是一个可怕的解释,或者它不清楚我想达到什么(编程新手!),但只是问问是否有什么不清楚!
我知道这是不好意思的建议,但你的数据听起来像是可以从第三方numpy librar中受益的东西年。顺便说一句,切成2d数组在这里是完全自然的,而且是高效的。你应该考虑看一下numpy数组,它们非常适合data-y的东西(只要你有矩形的嵌套列表)。 –
@AndrasDeak:对于一个海报来说,它被迫要求在场外参考,但你提供这个解决方案没有什么问题。我投了票。 – Prune
@Prune谢谢:)它最常被忽视,因为没有很好的理由,它被建议的方式太频繁了,而且它是一个第三方库,如果有适当的内置工具,导入会很昂贵。正如其他人所说的,“numpy是python的[jquery](http://meta.stackexchange.com/a/19492/313143)”。 –