我意识到这个问题已被问及过去的答案,但我无法调整我的方法,以避免重复调用后数据丢失。丢失数据重复调用方法
我的方法:
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