Python通过切片在列表中创建多个列表

2024-04-20 12:19:29 发布

您现在位置:Python中文网/ 问答频道 /正文

一般来说,我对编码还很陌生,我在裁剪一些数据时遇到了问题。它在一个简单的文本文件中,到目前为止,我已经设法从文件中提取一个大的文本字符串,并将其拆分为列表中的单个值(例如,index[0]=-78.5)。上述列表中的前两个索引分别是纬度和经度,接下来的240个是值(我要分析的数据)。从这里开始,接下来的两个值是纬度和经度,以此类推,也就是说索引[242]和[243]分别是纬度和经度。你知道吗

我要做的是遍历这个列表,取出前242个索引(lat、lon,然后是240个单独的值)并将它们放入一个列表,然后将它们放入一个“主”列表,创建一个嵌套列表。我想这样做,直到我到达列表的最后,这意味着我想有一个步骤242(我想?)。最终结果应该是这样的:

主列表=[[lat,lon,240值…],[lat,lon,240值…],…]

我需要这样做,这样我就可以访问每个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]

这基本上就是我从文件中删除空格,并将字符串变成列表中的单个元素新的列表有很多元素!你知道吗

我试着把它作为一个测试,但是我离它太远了,我想我创建了一个无限循环,因为我必须重新启动我的计算机:

indiv_values = []

for value in new_list:
    line = new_list[::239]
    indiv_values.append(line)

print indiv_values[0]

我以前尝试过逐行拆分,因为每行都包含lat、lon和240值。我成功地创建了一个包含每一行的列表,但是无法将每一行中的每个值分离为单独的元素。你知道吗

抱歉,如果这是一个糟糕的解释或它不清楚我要实现什么(新的编码!),但如果有什么不清楚的地方就去问吧!你知道吗


Tags: 数据元素列表newvaluelistfilevalues
1条回答
网友
1楼 · 发布于 2024-04-20 12:19:29

假设文件看起来像:

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

相关问题 更多 >