【发布时间】:2016-06-07 14:44:50
【问题描述】:
现在,我基本上是在浏览 Excel 表格。
我有大约 20 个名字,然后我有 50k 总值与这 20 个名字之一匹配,所以 excel 表有 50k 行长,B 列显示任何随机值,A 列显示 20 个名字之一。
我正在尝试为每个显示所有值的名称获取一个字符串。
Name A: 123,244,123,523,123,5523,12505,142... etc etc.
Name B: 123,244,123,523,123,5523,12505,142... etc etc.
现在,我创建了一个遍历 excel 表的字典,检查字典中的名称是否已准备好,如果是,则执行
strA = strA + "," + foundValue
然后它将 strA 插入到该特定名称的字典中。如果名称不存在,它会创建该字典键,然后将该值添加到其中。
现在,一开始一切都很好。但它已经大约 15 或 20 分钟,到目前为止它只添加到字典中的 5k 值,并且随着时间的推移它似乎变得更慢并且它继续运行。
我想知道是否有更好的方法或更快的方法来做到这一点。我正在考虑每 1k 个值构建一个新字典,然后最后将它们组合在一起.. 但这将是总共 50 个字典,听起来很复杂.. 虽然可能不是.. 我不确定,也许它可以更好地工作这样,这似乎行不通。
我确实需要在每个值之间用逗号显示每个值的字符串。这就是为什么我现在正在做字符串的事情。
【问题讨论】:
-
你如何确定它只处理了 5k 个值?您是否在循环的每次迭代中都执行打印语句?
-
是的..我在每次迭代时都做一个打印声明..现在它只有 5.5k..最后 500 个永远不会被占用
-
现在每个条目需要 2 秒。在 30 秒内达到 500 之前,总价值仅为 1500
-
听起来您一次又一次地循环访问相同的数据。是否可以粘贴遍历excel表格并添加到字典的代码?
-
请问词典建好后做什么?这是相关的,因为除非某些代码需要整个 dict,否则不构建 dict 而是直接写入文件然后根据需要使用文件可能更明智(并且可能更快)。
标签: python dictionary