我對編碼通常很陌生,而且在裁剪一些數據時遇到問題。它是一個簡單的文本文件,我到目前爲止已經設法從文件中取出一大串文本,並將其分割成列表中的單個值(例如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)」。 –