我需要處理這樣一種格式的氣象站數據(SYNOP),其中每行代表一個測量並且我有數千個測量結果:Python:找到3個相鄰列表項並確定其中的第一個列表索引
line = 'AAXX 01004 60265 32970 03404 10048 20010 38997 48605 51014='
與第六塊開始,塊的編號(1XXXX 2xxxx時3XXXX等,有時只有5個塊,但有時也更具有附加數據)
的關鍵點在於之間的塊的數量AAXX和1xxxx塊並不總是相同的,但我知道2塊在1xxxx塊之前有我需要的數據。爲了可靠地查明該塊,我需要確定1xxxx塊的位置並從那裏向後計數。
我的想法是沿着空格將行分割成一個列表,然後迭代列表項以查找1xxxx塊列表中的位置。
list = line.split(' ')
但我不知道如何做這個迭代。必須有一個合理優雅的方式來尋找3個塊,其中第一個以1開始,第二個以2以及第三以3,然後返回第一個塊的列表索引?
這可能很簡單,但我無法弄清楚,並會很感激任何提示!
編輯:爲了澄清,有可能另一個以1開頭的塊出現在我需要的塊之前,所以找到我需要的塊的唯一可靠方法是確保它跟着一個以2開頭的另一個從3開始(這應該會將誤報機率降低到幾乎0)。
我認爲這將是更好,更安全的SYNOP格式解碼正確 – 2010-07-29 09:07:34
Gnibbler:我同意。你知道SYNOP並有任何指針嗎?在我看來,格式沒有很好的定義,氣象站也不一定遵循規範,但是使用第一個1xxxx塊作爲參考點來解碼格式的方法似乎是一個很好的折衷方案,但需要一個強大的找到它的方法。 – stff00 2010-07-29 10:49:33