【发布时间】:2014-12-09 12:23:10
【问题描述】:
我对如何解决这个问题有一个想法,但我需要用大量数据对其进行优化。 我非常想找到每个状态中的所有值并记录它们出现的次数。
courses = {}
def insertIntoDataStruct(state,job,count,dict):
if not state in dict: #adds state to list with first job and count
dict[state] = [[job,count]]
else:
dict[state].append([job,count])
insertIntoDataStruct("TX", 214, 1, courses)
insertIntoDataStruct("CA", 3124, 1, courses)
insertIntoDataStruct("TX", 21455, 1, courses)
insertIntoDataStruct("CA", 5124, 1, courses)
insertIntoDataStruct("CA", 5124, 1, courses)
应该输出:
{'CA': [[3124, 1], [5124, 1], [5124, 1]], 'TX': [[214, 1], [21455, 1]]}
所以如果在 CA 中值 5124 被添加两次,它应该输出:
{'CA': [[3124, 1], [5124, 2], 'TX': [[214, 1], [21455, 1]]}
如果数字已经在状态内,我可以创建一个 for 循环来检查每次附加的东西,但是当我在添加每一行时获得数千个值来检查时,它会变得很耗时。
优化它的最佳方法是什么?
【问题讨论】:
标签: python performance list dictionary append