Python - 在切片列表中创建多个列表

时间:2017-02-09 00:43:04

标签: python list

我对编码很陌生,而且我在裁剪一些数据方面遇到了麻烦。它在一个简单的文本文件中,我到目前为止已经设法从文件中取出一个大的文本字符串并将其拆分为列表中的单个值(例如index [0] = -78.5)。所述列表中的前两个索引分别是纬度和经度,下一个240是值(我想要分析的数据)。从那里,接下来的两个值再次是纬度和经度,依此类推 - 意味着索引[242]和[243]也分别是纬度和经度。

我想要做的是遍历此列表,取出前242个索引(lat,lon,然后是240个单独的值)并将它们放入一个列表中,然后将其放入'主'列表,创建嵌套列表。我想这样做直到我到达列表的末尾,这意味着我想要步骤242(我想?)。最终结果应如下所示:

master_list = [[lat,lon,240 values ...],[lat,lon,240 values ...],...]

我需要这个,以便我可以单独访问每个lat和lon,同时仍然保持它们与该列表中的值相关联,因为我将根据坐标裁剪这些数据。

到目前为止,我有这个:

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 个答案:

答案 0 :(得分:0)

假设文件如下:

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...]], ...]