我目前正在使用一个词典键入秒自从时代结合嵌套字典和列表来存储和查找事件。实力在于,我可以快速查找具有良好性能的值(认为哈希值)。弱点在于搜索和操纵后续内容很笨拙。我忍不住想我的方法并不是Pythonic,所以我在寻找建议。Pythonic替代嵌套字典和列表
下面是使用整数,而不是秒纪元以来的一个简单的例子:
D = {}
D[1] = {"995" : ["20905", "200101"]}
D[2] = {"991" : ["20901"], "995" : ["20905"]}
eventCode = '995'
error = '90900'
# find entry
if 1 in D:
# if eventCode exists then append error code
if D[1][eventCode]:
D[1][eventCode].append(error)
我可以看一下d [1]很快,但是其余的代码似乎不是很Python的。任何建议还是我偏执狂?
我应该检查“错误”是否已经在列表中。但是,我不确定如何检查此构造的成员身份。这段代码不为我工作:
if error not in D[1][eventCode]
是否有特殊原因来定义d为'dict'而不是'list'? – Selcuk
最后一个片段应该可以正常工作。 –
订单是否在列表中很重要?如果不是,请考虑使用集合,它具有更快的查找和自动欺骗预防功能,尽管集合比列表消耗更多的RAM。 –