问题描述
一般而言,我对编码还很陌生,但是在裁剪某些数据时遇到了麻烦。 它在一个简单的文本文件中,到目前为止,我设法从文件中提取了一大串文本,并将其拆分为列表中的各个值(例如index [0] = -78.5)。 所述列表中的前两个索引分别是纬度和经度,接下来的240个是值(我要分析的数据)。 从那里开始,接下来的两个值又是纬度和经度,依此类推-含义索引[242]和[243]分别也是纬度和经度。
我想要做的是遍历此列表,取出前242个索引(纬度,经度,然后是240个单独的值),并将其放入列表中,然后将其放入“主”列表中,创建一个嵌套列表。 我要这样做,直到到达列表的末尾,这意味着我想走242步(我想?)。 最终结果应如下所示:
master_list = [[lat,lon,240个值...],[lat,lon,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值。 我设法创建了一个包含每一行的列表,但是无法将每一行中的每个值都分成单独的元素。
抱歉,如果这是一个糟糕的解释,或者不清楚我要实现的目标(对编码来说是新的!),但是请问是否有任何不清楚的地方!
1楼
假设文件如下所示:
lat1, lon1, values...
lat2, lon2, values...
...
根据您的描述,您应该能够:
with open("file.txt", "r") as fobj:
file_contents = fobj.read()
llv = list()
for line in file_contents.strip("\n").split("\n"):
data = line.split(" ")
# process however you want
llv.append([data[0], data[1], data[2:])
这将为您提供如下列表(llv):
[[lat1, lon1, [values...]], [lat2, lon2, [values2...]], ...]