我有一個簡單的腳本使用GyPython組件Rhino/Grasshopper。目標是將小時天氣數據(只記錄幾小時)分配到幾小時。如果沒有測量返回0。它應該這樣工作(例如具有類似的值):大型數據集崩潰python腳本
hoursList = [hr1,hr2,hr3,hr4,hr5,hr6]
measuredList = [hr2,hr3,hr6]
recordList = [wData1,wData2,wData3]
finalList = []
def assignData(i,y):
for i < len(leadList):
if hoursList[i] == measuredList[y]:
finalList.append(recordList[y])
i += 1
y += 1
else:
finalList.append(0)
i += 1
assignData(i,y)
i = 0
y = 0
assignData(i,y)
其中應該返回
[0,wData1,wData2,0,0,wData3]
的用於這種情況下得到的finalList
(換行符加入幫助可讀性)
[0, 'wData1', 'wData2', 0, 0, 'wData3', 'wData3',
0, 'wData3', 'wData3', 0, 0, 'wData3', 'wData3',
0, 'wData3', 'wData3', 'wData2', 0, 0, 'wData3', 'wData3',
0, 'wData3', 'wData3', 0, 0, 'wData3', 'wData3',
0, 'wData3', 'wData3', 'wData1', 'wData2', 0, 0, 'wData3', 'wData3',
0, 'wData3', 'wData3', 0, 0, 'wData3', 'wData3',
0, 'wData3', 'wData3', 'wData2', 0, 0, 'wData3', 'wData3',
0, 'wData3', 'wData3', 0, 0, 'wData3', 'wData3',
0, 'wData3', 'wData3']
當我嘗試運行大型數據列表(約43000個值)的代碼,之後崩潰大約7000次迭代。我檢查了sys.getrecursionlimit,它是2147483647.任何想法如何獲得這項工作?
歡迎來到StackOverflow。請閱讀並遵守幫助文檔中的發佈準則。 [最小,完整,可驗證的示例](http://stackoverflow.com/help/mcve)適用於此處。在發佈您的MCVE代碼並準確描述問題之前,我們無法爲您提供有效的幫助。 我們應該能夠將發佈的代碼粘貼到文本文件中,並重現您描述的問題。 尤其是,你還沒有給我們leadList' - 更好的是,只需從給定的變量中得出它的長度,所以我們可以運行你的代碼。 – Prune
另外,請注意,您的代碼不起作用。你有語法錯誤可以阻止它運行,更不用說你描述的方式了。它不*返回*任何東西;相反,它改變了全球名單作爲一個副作用,你沒有打擾向我們展示。 – Prune
除此之外,你實際得到的6個元素數據集的輸出是什麼?我可以在我的例子中看到它,但這應該是*你的問題來描述。 – Prune