我意識到這個問題已被問及過去的答案,但我無法調整我的方法,以避免重複調用後數據丟失。丟失數據重複調用方法
我的方法:
def getColumn(self, name):
index_num = self.headers.index(str(name))
columns = [item[index_num] for item in self.container]
acco = self.accounts
del acco[0]
del columns[0]
columns = [item.replace(',', '') for item in columns]
return dict(zip(acco, columns))
self.container是與具有以下形式的標題的數組:
[['ACCOUNT', 'VALUE1', 'VALUE2'],
['Account1', '3.43', '2.5'],
['Account2', '1,235.67', '8.98']]
self.accounts由return [item[0] for item in self.container
我」定義什麼m試圖做的是通過傳遞一個字符串來匹配其中一個頭名稱來壓縮字典中的帳號和值。該方法查找標題中的索引,然後嘗試拉出值列並刪除標題。
對該方法的每次後續調用都會導致每次調用的字典長度減1。當我傳入'VALUE1'時,長度爲26.當我通過'VALUE2'時,其長度爲25,依此類推。
任何人都可以提出一種方法來實現這一點,而不會丟失後續調用該方法的數據?
如果您通過'VALUE1','VALUE2'和'VALUE1',會發生什麼情況? – 2012-02-15 16:30:35
有很多方法可以做到這一點 - 例如,保留一個狀態變量(例如self.next),表示要獲取的下一個變量的索引。然而,這看起來像一個非常糟糕的階級設計 - 你確定沒有更好的方式來安排事情嗎? – 2012-02-15 16:33:29
它繼續失去價值。再次通過'VALUE1'後長度減少到24. – donopj2 2012-02-15 16:34:21